索引優化

索引優化
索引列上不能使用表達式或者函數
在這裏插入圖片描述
Innodb索引鍵 的大小不能超過767個字節 mysiam 1000

前綴索引和索引列的選擇性

索引的選擇性是不重複的索引值和表記錄數的比值

聯合索引:
如何選擇索引列的順序
·經常會用到的列優先
·選擇性高的列優先
·寬度小的列優先
覆蓋索引:
優點:
可以優化緩存,減少磁盤的IO操作
可以減少隨機IO,便隨機IO操作變爲順序IO
可以避免對Innodb主鍵索引的二次查詢
可以避免MyISAM表進行系統調用
無法使用:
存儲引擎不支持覆蓋索引,hash就不行
查詢中使用了太多的列
使用了雙%號的like查詢

如何使用索引來優化查詢:
使用索引掃描來優化排序
通過排序進行操作
按照索引順序掃描數據
·索引的列順序和order by子句的順序安全一致
·索引中所有列的方向和order by子句完全一致
·order by中的字段全部在關聯表中的第一張表中

模擬hash索引進行查詢優化:
用B-tree模擬hash 不是所有的存儲引擎都支持hash索引、
只能處理鍵值的全值匹配查找
所使用的hash函數決定着索引鍵的大小
利用索引優化鎖
·索引可以減少鎖定的行數
·索引可以加快處理速度,同時加快了鎖的釋放
索引的維護和優化
刪除重複的索引和冗餘的索引
·primary key(id),unique key(id),index(id)
·index(a),index(a,b)
在這裏插入圖片描述
可以檢查冗餘的索引
查找爲被使用的索引
更新索引統計信息及減少索引鎖片

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章