宣告
1)該文章整理自網上的大牛和專家無私奉獻的資料,具體參考的資料請看參考文獻,
2)本文僅供學術交流,非商用,如果某部分不小心侵犯了大家的利益,還望海涵,并聯系博主洗掉,
3)博主才疏學淺,文中如有不當之處,請各位指出,共同進步,謝謝,
4)此屬于第一版本,若有錯誤,還需繼續修正與增刪,還望大家多多指點,大家都共享一點點,一起為祖國科研的推進添磚加瓦,
什么是索引
1 索引是為了方便查找我們所需要的資料, 2 mysql支持的索引資料型別 3 B-Tree索引的特點 4 B-Tree索引以B+Tree(樹)的結構存盤資料, 5 B-Tree索引能夠加快資料的查詢速度; 6 B-Tree更適合進行范圍查找; 7 在什么情況下可以用到B樹索引 8 全值匹配的查詢;如:order_sn=’987654321’; 9 匹配最左前綴的查詢; 10 匹配列前綴查詢 ; 11 匹配范圍值得查詢; 12 精確匹配左前列并范圍匹配另外一列; 13 只訪問索引的查詢; 14 BTree索引的使用限制 15 如果不是按照索引的最左列開始查找,則無法使用索引, 16 使用索引時不能跳過索引中的列; 17 Not in 和<>操作無法使用索引; 18 如果查詢中有某個列的范圍查詢,則其右邊所有的列都無法使用索引;
Hash索引的特點
1 Hash索引時基于Hash表實作的,只有查詢條件精確匹配Hash索引中的所有列時,才能夠使用到Hash索引, 2 對于Hash索引中的所有列,存盤引擎都會為每一行計算一個Hash碼,Hash索引中存盤的就是Hash碼, 3 Hash索引的限制 4 Hash索引必須進行二次查找 5 Hash索引無法用于排序 6 Hash索引不支持部分索引查找也不支持范圍查找 7 Hash索引中Hash碼的計算可能存在Hash沖突
為什么要使用索引
1 索引大大減少了存盤引擎需要掃描的資料量 2 索引可以幫助我們進行排序避免使用臨時表 3 索引可以把隨機I/O變為順序I/O 4 索引是不是越多越好 5 索引會增加寫操作成本 6 太多的索引會增加查詢優化器的選擇時間
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/12700.html
標籤:MySQL
