索引

索引是什么?

索引是一種幫助MySql高效獲取數(shù)據(jù)的一種數(shù)據(jù)結(jié)構(gòu)(B+Tree索引和Hash索引),一般默認(rèn)是B+樹

優(yōu)點(diǎn):1.提高查詢效率,降低IO使用率

? ? ? ? ? ?2.降低CPU的使用率(B樹本身就是一個(gè)排序好的結(jié)構(gòu),排序的時(shí)候直接使用)

缺點(diǎn):1.本身占用內(nèi)存,一般存在于硬盤

? ? ? ? ? ?2.降低增刪改的效率

? ? ? ? ??


索引為什么快?

因?yàn)橛玫氖荁+樹,查找的時(shí)候通過索引列表迅速定位到數(shù)據(jù)存放的位置



索引選擇的原則?

1.占用存儲(chǔ)空間少以及存儲(chǔ)空間固定的字段

2.經(jīng)常使用的字段,如where子句中的

3.更新頻繁的字段不適合做索引

4.最左前綴原則



什么是最左前綴原則?

mysql聯(lián)合索引的時(shí)候,最左優(yōu)先。如果是abc三列索引,則a,ab,abc都能建立索引,否則會(huì)索引失效



索引覆蓋:

不讀取源文件,只從索引文件中獲取數(shù)據(jù)(不需要回表查詢)using index



索引的優(yōu)化:

1.根據(jù)sql解析的順序,調(diào)整索引的順序

2.范圍查詢in有時(shí)候會(huì)導(dǎo)致索引失效,可以交換索引順序,把in放在最后面

3.最佳左前綴,保證順序一致性

4.小表驅(qū)動(dòng)大表

5.建立在經(jīng)常使用的字段


優(yōu)化sql的方法:

1.exist和in(聯(lián)表查詢中):如果主查詢的數(shù)據(jù)集大,用in

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 如果子查詢的數(shù)據(jù)集大,用exist

2.order by的優(yōu)化:雙路排序和單路排序


索引的失效:

1.復(fù)合索引沒有按照最左前綴原則

2.在索引上進(jìn)行操作(計(jì)算,函數(shù),類型轉(zhuǎn)換)

3.復(fù)合索引不能使用!= <>或者is null,否則會(huì)失效

4.like盡量以常量開頭,%開頭會(huì)導(dǎo)致索引失效

5.類型轉(zhuǎn)換會(huì)導(dǎo)致索引失效

6.使用or


慢查詢優(yōu)化思路:

1.開啟慢查詢?nèi)罩竟δ埽崖齭ql找出來

2.選用合適的字段類型做索引,節(jié)省空間

3.子查詢的exist和in

4.使用join代替子查詢:這樣就不用創(chuàng)建臨時(shí)表了,但是也不是很高效

可以對關(guān)聯(lián)查詢進(jìn)行分解,就是對每個(gè)表進(jìn)行一次單表查詢,把查詢結(jié)果關(guān)聯(lián)起來

5.不用select *?

6. 給where子句和order by子句涉及到的列創(chuàng)建索引

7.保證最左前綴原則

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 零.索引簡介 1. 索引是什么 ①M(fèi)ySQL官方對索引的定義是:索引(Index)是幫助MySQL高效獲取數(shù)據(jù)的數(shù)...
    一條路上的咸魚閱讀 1,004評論 0 6
  • 索引 數(shù)據(jù)庫中的查詢操作非常普遍,索引就是提升查找速度的一種手段 索引的類型 從數(shù)據(jù)結(jié)構(gòu)角度分 1.B+索引:傳統(tǒng)...
    一凡呀閱讀 3,212評論 0 8
  • 1.explain 有時(shí)在使用explain時(shí),感覺有些條件一定能使用到索引,但是并沒有使用到,可能是數(shù)據(jù)少,my...
    sizuoyi00閱讀 1,006評論 0 0
  • 1、SQL性能下降的原因 數(shù)據(jù)太多:考慮分庫分表關(guān)聯(lián)了太多的表:SQL優(yōu)化沒有充分利用到索引:建立索引服務(wù)器調(diào)優(yōu)及...
    JBryan閱讀 517評論 0 0
  • 湛軒帶著夢靈來到他的房間,夢靈一進(jìn)到湛軒的房間,就跑到他的床前,往床上一躺,開始骨碌起來,湛軒一看到這樣的一幕...
    流浪人小妹閱讀 180評論 0 1

友情鏈接更多精彩內(nèi)容