高效能MySQL中的三星索引

2021-09-25 10:15:11 字數 529 閱讀 1092

我對此提出了深深的疑問:

一星:相關的記錄指的是什麼??(相關這個詞很深奧,「相關部門」是什麼部門)

二星:如果建立了b-tree(b+tree)索引,資料就有序了。

三星:索引的列包含了查詢需要所有的列?根本不需要在where查詢條件所有的列上建立索引!

我認為一星和二星的rows應該是columns,索引不關具體的資料行,只與查詢的列有關。這樣也與high performance mysql 後面提到的多列索引的觀點相符合,特別是二星評估。

個人的觀點:

評估乙個索引是否適合某個查詢的「三星系統」(three-start system):

一星:索引將相關的列放到一起,即在一系必要的列上建立索引,不必為在where條件裡面的列都建立索引。 

二星:索引中的資料列順序和查詢中排列順序一致。通常將選擇性最高的列放到索引的最前列。

三星:索引中的列包含了查詢中需要的全部列。索引包含查詢所需要的資料列,不再進行全表查表(聚簇索引、覆蓋索引)。

MySQL 三星索引

表 test 列 a,b,c,d,e,f 索引 idx a b c a,b,c a列 過濾因子1 b列 過濾因子10 第一顆星,保證最窄的索引片 select a,b,c,d,e,f from test where a a1 and b b1 and c c1 索引idx a b c 滿足了所有的謂...

mysql高效能索引 mysql高效能索引( )

在開發中,我們知道大多數應用的瓶頸在於sql語句的執行時耗,在這裡並不討論sql語句的安全,僅僅討論高效能sql語句,而與高效能sql語句緊密相連的就是傳說中的 索引。索引 一種工作在儲存引擎端的用於快速找到記錄的一種資料結構。mysql使用索引的方式是 先找到索引的值,再根據索引的值找到資料行。索...

MySQL建立高效能的索引(三)

索引分類和區別 索引注意事項 聚簇索引 索引覆蓋 索引是儲存引擎快速找到記錄的一種資料結構。使用索引可以極大的提高mysql的查詢效能,接下來講介紹索引的基礎 索引的分類和區別 索引的注意事項 以及關於聚簇索引和覆蓋索引的知識點。當你去看一本書,如何快速找到你想開啟的頁?你一定會先看書的索引部分,在...