索引優化原則

2021-06-21 07:57:05 字數 803 閱讀 4262

索引優化原則

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.位經常需要進行排序.分組和聯合操...