日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql5.6 函数索引_聊聊MySQL中的索引

發(fā)布時間:2025/4/17 数据库 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql5.6 函数索引_聊聊MySQL中的索引 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

關(guān)于MySQL中的索引使用

索引是數(shù)據(jù)庫優(yōu)化中最常用也是最重要的手段之一,通過索引通常可以幫助用戶解決大多數(shù)的SQL性能問題。

索引的存儲分類:

1、B-Tree索引:最常見的索引類型,大部分引擎都支持B樹引擎

2、HASH索引:只有Memory引擎支持,使用場景簡單

3、R-Tree索引(空間索引):MyISAM的一個特殊索引類型,主要用于地理看見數(shù)據(jù)類型,通常使用較少。

4、Full-text(全文索引):MyISAM的一個特殊索引類型,主要用于全文索引,InnoDB從MySQL5.6版本開始提供對全文索引的支持。

MySQL目前不支持函數(shù)索引,但是能對列的前面某一部分進(jìn)行索引。這個特性可以大大縮小索引文件的大小,但前綴索引也有缺點,在排序Order By和分組Group By操作的時候無法使用。

create index idx_title on film(title(10));

MyISAM、InnoDB、Memory三個常見引擎支持的索引類型比較:

索引

MyISAM引擎

InnoDB引擎

Memory引擎

B-Tree索引

支持

支持

支持

HASH索引

不支持

不支持

支持

Full-text索引

支持

5.6版本開始支持

不支持

R-Tree索引

支持

不支持

不支持

比較常用到的索引就是B-Tree索引和Hash索引。Hash索引相對簡單,只有Memory/Heap引擎支持Hash索引。Hash索引適用于Key-Value查詢,通過Hash索引要比通過B-Tree索引查詢更迅速;Hash索引不適用范圍查詢,例如、<=、>=這類操作。如果使用Memory/Heap引擎并且where條件中不使用“=”進(jìn)行索引列,那么不會用到索引。Memory/Heap引擎只有在“=”的條件下才會使用索引。

B-Tree索引是最常見的索引,構(gòu)造類似二叉樹,能根據(jù)鍵值提供一行或者一個行集的快速訪問,通常只需要很少的讀操作就可以找到正確的行。不過,需要注意B-Tree索引中的B 不代表二叉樹(binary),而是代表平衡樹(balanced)。B-Tree索引并不是一棵二叉樹。

MySQL中可以使用索引的常見場景:

1、匹配全值(match the all value),即where field = '**'

2、匹配值的范圍(match the range),即where field (>=)

3、匹配最左前綴(Match a leftmost prefix) ,僅僅使用索引中的最左邊列進(jìn)行查找,比如在 col1 + col2 + col3 字段上的聯(lián)合索引能夠被包含 col1、(col1 + col2)、(col1 + col2 + col3)的等值查詢利用到,可是不能夠被 col2、(col2 + col3)的等值查詢利用到。最左匹配原則可以算是MySQL中B-Tree索引使用的首要原則。

4、僅僅對索引進(jìn)行查詢(Index only query),當(dāng)查詢的列都在索引的字段中時,查詢的效率更高

5、匹配列前綴(Match a column prefix),僅僅使用索引中的第一列,并且只包含索引第一列的開頭一部分進(jìn)行查找。

6、能夠?qū)崿F(xiàn)索引匹配部分精確而其他部分進(jìn)行范圍匹配(Match one part exactly and match a range on another part) 。

7、如果列名是索引,那么使用 column_name is null就會使用索引。

存在索引但是不能使用索引的常見場景:

1、以%開頭的LIKE查詢不能夠利用B-Tree索引,執(zhí)行計劃中key的值為NULL表示沒有使用索引。一般都推薦使用全文索引(Fulltext)來解決類似的全文檢索問題。或者考慮利用 InnoDB 的表都是聚簇表的特點,采取一種輕量級別的解決方式:一般情況下,索引都會比表小,掃描索引要比掃描表更快(某些特殊情況下,索引比表更大,不在本例討論范圍內(nèi)),而InnoDB表上二級索引idx_last_name實際上存儲字段last_name還有主鍵actor_id,那么理想的訪問方式應(yīng)該是首先掃描二級索引 idx_last_name獲得滿足條件 last_name like '%NI%'的主鍵 actor_id列表,之后根據(jù)主鍵回表去檢索記錄,這樣訪問避開了全表掃描演員表actor產(chǎn)生的大量IO請求。

2、數(shù)據(jù)類型出現(xiàn)隱式轉(zhuǎn)換的時候也不會使用索引,特別是當(dāng)列類型是字符串,那么一定記得在 where 條件中把字符常量值用引號引起來,否則即便這個列上有索引,MySQL 也不會用到,因為MySQL默認(rèn)把輸入的常量值進(jìn)行轉(zhuǎn)換以后才進(jìn)行檢索。例如,演員表actor中的姓氏字段last_name是字符型的,但是SQL語句中的條件值1是一個數(shù)值型值,因此即便存在索引idx_last_name,MySQL也不能正確地用上索引,而是繼續(xù)進(jìn)行全表掃描。

3、復(fù)合索引的情況下,假如查詢條件不包含索引列最左邊部分,即不滿足最左原則Leftmost,是不會使用復(fù)合索引的。

4、如果 MySQL 估計使用索引比全表掃描更慢,則不使用索引。

5、用or分割開的條件,如果or前的條件中的列有索引,而后面的列中沒有索引,那么涉及的索引都不會被用到

總結(jié)

以上是生活随笔為你收集整理的mysql5.6 函数索引_聊聊MySQL中的索引的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精彩视频在线 | 欧美日韩四区 | 九九福利视频 | 99热99这里只有精品 | 在线观看中文字幕av | av噜噜在线观看 | 无码精品视频一区二区三区 | 91麻豆精品国产午夜天堂 | 青青草成人免费在线视频 | 婷婷色一区二区三区 | av伦理在线 | 国产视频污 | 懂色av,蜜臀av粉嫩av | 五十路熟母 | 精品无码一区二区三区免费 | 国产99久久九九精品无码 | 就要爱爱tv | 国产精品无码无卡无需播放器 | 欧美热热 | 丁香婷婷六月天 | 亚洲看看 | www.成人免费视频 | 久青草视频在线 | 北条麻妃99精品青青久久 | 爱的天堂| www.色就是色| 福利在线电影 | 午夜成人免费视频 | 女女互磨互喷水高潮les呻吟 | 黑人无套内谢中国美女 | 住在隔壁的她动漫免费观看全集下载 | 天堂av中文字幕 | 日本美女三级 | 99视频国产精品免费观看a | 女人的天堂网 | 国产不卡在线视频 | 久久精品99国产国产精 | 穿扒开跪着折磨屁股视频 | 直接看的av网站 | 黄色污污网站在线观看 | av在线免费播放网站 | 亚洲二区中文字幕 | 久草视频网站 | 国产黄色大片在线观看 | 丝袜黄色片 | 欧美在线色视频 | 亚洲国产精品女人久久久 | 爱爱视频久久 | 奇米成人| www.brazzers.com | 麻豆最新| 一级大片视频 | 婷婷资源网 | 美国成人免费视频 | 日韩在线不卡 | 草草影院av| 男女互操视频 | 九月婷婷综合 | 日韩一区二区三区不卡视频 | 最近中文字幕无免费 | 日韩插 | 成人av网址在线观看 | 国产天堂一区 | 国产尤物在线观看 | 噜噜色综合| 中文无码av一区二区三区 | 污污污污污污www网站免费 | 大尺度叫床戏做爰视频 | 免费一级suv好看的国产网站 | 中文字幕无码日韩专区免费 | 香港三日本三级少妇66 | 精品五月天| 天天色棕合合合合合合合 | 波多野结衣一二区 | 久草免费福利 | 美女扒逼| 伊人欧美在线 | 国产一区二区在线观看免费 | 国产精品久久久久久久久免费看 | 女女互慰揉小黄文 | www操| 久草手机在线视频 | 中年夫妇啪啪高潮 | 爱福利视频网 | 亚洲欧美国产精品久久久久久久 | 国产五区 | 国产精品一区二区网站 | 91久久精品日日躁夜夜躁欧美 | 在线观看波多野结衣 | 尤物视频在线观看国产 | 亚洲乱熟| 日本精品一二三区 | 人人插人人看 | 亚洲免费成人在线 | 日本bbwbbw| 一区二区三区在线观看免费 | av射进来 | 亚洲 高清 成人 动漫 | 国产亚洲精品码 |