最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL索引的基本語法

 更新時(shí)間:2020年08月13日 10:06:43   作者:技能錦囊  
這篇文章主要介紹了MySQL索引的基本語法,幫助大家更好的理解和學(xué)習(xí)MySQL,感興趣的朋友可以了解下

     索引是排好序的數(shù)據(jù)結(jié)構(gòu)!可以用在 where 條件查找的字段,和order by 排序的字段,有了索引,便可以快速地定位數(shù)據(jù)所在的物理地址并找出來。

索引的分類

1.普通索引(normal):沒有任何約束,主要用于提高查詢效率

2.唯一索引(UNIQUE):在普通索引的基礎(chǔ)上增加了數(shù)據(jù)唯一性的約束,可以有多個(gè)

3.主鍵索引(primary key):主鍵索引在唯一索引的基礎(chǔ)上增加了不為空的約束,也就是 NOT NULL+UNIQUE,只能有一個(gè)

4.全文索引(FULLTEXT):MySQL 自帶的全文索引只支持英文。

一般使用專門的全文搜索引擎,比如 ES(ElasticSearch)

創(chuàng)建索引

#普通索引

ALTER TABLE 表名 ADD INDEX 索引名 (column_list);

#唯一索引

ALTER TABLE 表名 ADD UNIQUE 索引名(column_list);

#主鍵索引

ALTER TABLE 表名 ADD PRIMARY KEY 索引名(column_list);

#全文索引(字符串?dāng)?shù)據(jù)類型)

ALTER TABLE 表名 ADD fulltext 索引名(column_list);  

#查看索引

show index from student \G

這里用\G 代替分號結(jié)束符;可以格式化輸出數(shù)據(jù)信息。

#刪除索引

修改表的方式刪除索引

ALTER TABLE 表名 DROP INDEX 索引名;

刪除主鍵索引

ALTER TABLE 表名 DROP PRIMARY KEY;

索引列為一列時(shí)為單一索引;
多個(gè)列組合在一起創(chuàng)建的索引叫做聯(lián)合索引

什么情況下可以創(chuàng)建索引?

1.字段的數(shù)值有唯一性的限制,比如id

2.頻繁作為 WHERE 查詢條件的字段,尤其在數(shù)據(jù)表大的情況下

如果在數(shù)據(jù)量非常大的情況下,沒有 WHERE 條件過濾是非??膳碌?。

3.需要經(jīng)常 GROUP BY 和 ORDER BY 的列

4.UPDATE、DELETE 的 WHERE 條件列,一般也需要?jiǎng)?chuàng)建索引

原理是因?yàn)槲覀冃枰雀鶕?jù) WHERE 條件列檢索出來這條記錄,然后再對它進(jìn)行更新或刪除,非索引字段更新數(shù)據(jù)效果更明顯;

如果索引太多了,在更新數(shù)據(jù)的時(shí)候,如果涉及到索引更新,就會造成負(fù)擔(dān)。

5.DISTINCT 字段需要?jiǎng)?chuàng)建索引

6.做多表 JOIN 連接操作時(shí),創(chuàng)建索引需要注意以下的原則

連接表的數(shù)量盡量不要超過 3 張,每增加一張表就相當(dāng)于增加了 一次嵌套的循環(huán),數(shù)量級增長會非???對用于連接的字段創(chuàng)建索引,并且該字段在多張表中的類型必須一致。

什么時(shí)候不需要?jiǎng)?chuàng)建索引?

索引的價(jià)值是快速定位,如果起不到定位的字段通常是不需要?jiǎng)?chuàng)建索引的

1.WHERE 條件(包括 GROUP BY、ORDER BY)里用不到的字段不需要?jiǎng)?chuàng)建索引;

2.表記錄太少,比如少于 1000 行,那么是不需要?jiǎng)?chuàng)建索引;

3.字段中如果有大量重復(fù)數(shù)據(jù),也不用創(chuàng)建索引,比如性別字段;

4.頻繁更新的字段不一定要?jiǎng)?chuàng)建索引。因?yàn)楦聰?shù)據(jù)的時(shí)候,也需要更新索引,如果索引太多,在更新索引的時(shí)候也會造成負(fù)擔(dān),從而影響效率;

什么情況下索引失效?

1.如果索引列進(jìn)行了表達(dá)式計(jì)算,使用函數(shù),則會失效

2.在 WHERE 子句中,如果在 OR 前的條件列進(jìn)行了索引,而在 OR 后的條件列沒有進(jìn)行索引,那么索引會失效。

3.當(dāng)我們使用 LIKE 進(jìn)行模糊查詢的時(shí)候,表達(dá)式不能是 % 開始

4.索引列盡量設(shè)置為 NOT NULL 約束

判斷索引列是否為 NOT NULL,往往需要走全表掃描,因此我們最好在設(shè)計(jì)數(shù)據(jù)表的時(shí)候就將字段設(shè)置為 NOT NULL 約束比如你可以將 INT 類型的字段,默認(rèn)值設(shè)置為 0。將字符類型的默認(rèn)值設(shè)置為空字符串 ('')

以上就是MySQL索引的基本語法的詳細(xì)內(nèi)容,更多關(guān)于MySQL索引語法的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 淺談Using filesort和Using temporary 為什么這么慢

    淺談Using filesort和Using temporary 為什么這么慢

    本文主要介紹了Using filesort和Using temporary為什么這么慢,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • 淺談MySQL next-key lock 加鎖范圍

    淺談MySQL next-key lock 加鎖范圍

    我們知道MYSQL NEXT-KEY LOCK是用來防止幻讀,那么MySQL next-key lock 加鎖范圍是多少,很多人都不知道,本文就來詳細(xì)的介紹一下
    2021-06-06
  • 詳解數(shù)據(jù)庫語言中的null值

    詳解數(shù)據(jù)庫語言中的null值

    這篇文章主要詳解了數(shù)據(jù)庫語言中的null值,針對MySQL上的實(shí)例進(jìn)行講解,需要的朋友可以參考下
    2015-04-04
  • mysql存儲過程如何利用臨時(shí)表返回結(jié)果集

    mysql存儲過程如何利用臨時(shí)表返回結(jié)果集

    這篇文章主要介紹了mysql存儲過程如何利用臨時(shí)表返回結(jié)果集,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • mysql 8.0.22壓縮包完整安裝與配置教程圖解(親測安裝有效)

    mysql 8.0.22壓縮包完整安裝與配置教程圖解(親測安裝有效)

    這篇文章主要介紹了mysql 8.0.22壓縮包完整安裝與配置教程圖解(親測安裝有效),本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • Mysql 用戶權(quán)限管理實(shí)現(xiàn)

    Mysql 用戶權(quán)限管理實(shí)現(xiàn)

    MySQL 是一個(gè)多用戶數(shù)據(jù)庫,具有功能強(qiáng)大的訪問控制系統(tǒng),可以為不同用戶指定不同權(quán)限。本文就來介紹一下Mysql 用戶權(quán)限管理實(shí)現(xiàn),感興趣的可以了解一下
    2021-05-05
  • 一文總結(jié)使用MySQL時(shí)遇到null值的坑

    一文總結(jié)使用MySQL時(shí)遇到null值的坑

    這篇文章給大家總結(jié)了日常使用MySQL時(shí),容易遇到NULL值的坑有哪些,文章通過代碼示例給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-01-01
  • Mysql數(shù)據(jù)庫百萬級數(shù)據(jù)測試索引效果

    Mysql數(shù)據(jù)庫百萬級數(shù)據(jù)測試索引效果

    這篇文章主要為大家介紹了Mysql數(shù)據(jù)庫百萬數(shù)據(jù)測試索引效果,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • MySQL登錄、訪問及退出操作實(shí)戰(zhàn)指南

    MySQL登錄、訪問及退出操作實(shí)戰(zhàn)指南

    當(dāng)我們要使用mysql時(shí),一定要了解mysql的登錄、訪問及退出,下面這篇文章主要給大家介紹了關(guān)于MySQL登錄、訪問及退出操作的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-10-10
  • 淺談mysql的子查詢聯(lián)合與in的效率

    淺談mysql的子查詢聯(lián)合與in的效率

    本文是作者在實(shí)際產(chǎn)品測試中遇到的問題,繼而作了相關(guān)總結(jié),具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-10-10

最新評論

汉源县| 大安市| 洪湖市| 鸡泽县| 松滋市| 勐海县| 镇远县| 信阳市| 沈阳市| 冕宁县| 乐陵市| 通城县| 靖边县| 鄂伦春自治旗| 深州市| 改则县| 武功县| 济宁市| 霍城县| 沾益县| 永和县| 布尔津县| 怀仁县| 牟定县| 杨浦区| 巴林右旗| 阳春市| 曲靖市| 花莲县| 甘孜县| 垫江县| 民勤县| 屏南县| 慈溪市| 农安县| 荥阳市| 溧阳市| 商都县| 平和县| 迭部县| 都江堰市|