索引優化原則
1 資料型別的選擇
資料型別越小越好,越簡單越好,避免null值
2 索引的列順序
索引的列順序很重要,例如index(a, b),當where中有a或a、b時,索引會被使用,但只有b時則不會被使用。因為a是這個組合索引的引導列,缺少引導列則索引不會被呼叫(這點不是非常確定,有的是這樣有的不是這樣,需要根據不同資料庫不同版本來看,具體可以通過查詢計畫檢視)。
索引列的順序應該和其被使用率相關,使用率越高的列,應該越往前面放。
3 聚集索引、b+樹、主鍵
乙個表只能有乙個聚集索引,聚集索引以b+樹形式儲存,所以,聚集索引的規則決定了索引存放的物理順序(聚集索引對需要最快速縮小查詢訪問及最快速進行字段排序時,非常有用),需要特別注意。
mysql的聚集索引就是主鍵,主鍵與聚集索引不能分離。
mssql的聚集索引不一定是主鍵,主鍵與聚集索引可以不一樣,可通過clustered宣告。
在可能的情況下,應當分別設計主鍵和聚集索引,因為聚集索引有非常好的查詢效能。
4 聚集與非聚集索引的使用情況概述
動作描述 聚集索引 非聚集索引
列經常被分組、排序 √ √
返回某範圍內的資料 √ ×
頻繁更新的列 × √
主、外來鍵列 √ √
頻繁修改索引列 × √
5 使用索引需要避免的一些操作
5.1 or
5.2 否定查詢
5.3 模糊查詢
5.4 避免null
mysql索引優化原則 MySQL 索引優化原則
索引優化原則 1 最左字首匹配原則,聯合索引,mysql會從做向右匹配直到遇到範圍查詢 3 and d 4 如果建立 a,b,c,d 順序的索引,d是用不到索引的,如果建立 a,b,d,c 的索引則都可以用到,a,b,d的順序可以任意調整。2 和in可以亂序,比如a 1 and b 2 and c ...
mysql索引優化原則 MySQL索引優化
mysql官方對索引的定義 索引是幫助mysql高效獲取資料的資料結構。索引是在儲存引擎中實現的,所以每種儲存引擎中的索引都不一樣。如myisam和innodb儲存引擎只支援btree索引 memory和heap儲存引擎可以支援hash和btree索引。這裡僅針對常用的innodb儲存引擎所支援的b...
mysql 索引優化,索引建立原則和不走索引的原因
第一 選擇唯一性索引 唯一性索引的值是唯一的,可以更快捷的通過該索引來確定某條記錄.2.索引的列為where 後面經常作為條件的字段建立索引 如果某個字段經常作為查詢條件,而且又有較少的重複列或者是唯一咧可以考慮作為索隱列 經常作為查詢條件的列作為索引會提高速度 3.位經常需要進行排序.分組和聯合操...