mysql優化 索引

2021-07-09 04:33:07 字數 857 閱讀 8443

1.根據where子句查詢行。

2.減少潛在結果集的大小。如果有多個索引可供選擇,mysql通常選擇能夠過濾掉最多行的索引。換句話說就是根據該索引查詢的結果集最小。

3.如果表中有乙個復合索引,如果查詢條件滿足該索引的最左匹配原則,則可以使用該索引來優化查詢。

假設復合索引列為(col1, col2, col3),那麼查詢條件中包含(col1),(col1, col2), 或者(col1,col2,col3)都可以使用該索引做優化。

4.在連線查詢當中,如果連線條件列的大小和型別都一致時,可以有效利用連線條件列上的索引。

當大小一致時,varchar和char被認為是相同型別。

連線條件列必須使用相同的字符集。

當連線列的型別不一致時,如果不能直接做比較(不經轉換),那麼索引將不被使用。

5.在索引列上查詢最大值(max(key_col_n))和最小值(min(key_col_n))

key_col_n為被索引的列。在索引中,如果key_col_n之前索引的列的比較物件為常量,則執行max和min時走索引會很高效。

6.利用索引做排序和分組。如果order by子句或者group by子句滿足索引的最左匹配原則,索引就可以用來做排序和分組。

7.覆蓋索引

乙個復合索引最多可包含16列,對於某些資料型別,復合索引還支援字首索引。

mysql使用復合索引必須滿足最左匹配原則。

mysql 優化 聚集索引 mysql 索引優化

一.聚集索引 clustered index innodb預設依據主鍵列聚集,myisam不使用 特點 b樹每個葉子包含實際資料行,資料按照索引順序地儲存在物理頁上。優點 1.範圍查詢,獲取指定id的全部資料只需從磁碟讀取少量資料頁 如果不使用聚集索引,每條資料可能引起一次磁碟io。2.由於索引和資...

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...