mysql索引技術名詞1 5

2022-10-07 20:18:09 字數 1135 閱讀 7270

目錄

注意:

1.如果依靠主鍵查詢,葉子結點直接儲存資料----主鍵b+樹

2.如果依靠其他健查詢查詢,葉子結點儲存主鍵值,再通過主鍵值查詢資料。通過主鍵值查詢資料的過程叫做回表----普通b+樹欄位查詢主鍵,再到主鍵b+樹查詢資料

1:select * from table1 where name='zhangsan'

2:select id from table1 where name='zhangsan'

第一種必須進行回表查詢其他字段資料

第二種,其他健的b+樹葉子結點已經儲存id值,直接返回,不需要進行回表操作。叫做覆蓋索引

id,name,age,gender

給(name,age)建立了組合索引

1:select * from table1 where name='zhangsan'

2:select * from table1 where name='zhangsan' and age=10

3:select * from table1 where age=10

4:select * from table1 where age=10 and name='zhangsan'

第1,2,4種用到了組合索引,最左原則。必須先查左邊的name,再查右邊的age

第4中因為mysql架構在優化器的時候內部會重構執行流程

(name,age)組合索引,最左原則

正常情況下:

1.先根據name列從儲存引擎中把符合規則的資料拉取到mysql的server曾

2.再server層按照age進行資料過濾

索引下推情況下:

1.直接從儲存引擎拉取資料的時候直接按照name和age做判斷,將符合的結果返回給mysql的server層

select t1.name,t2.name from t1 join t2 on t1.id=t2.id

執行方式:

1:把所有的字段先做表關聯,然後再從關聯好的表中選擇需要的4個字段

2:先把兩張表需要的4個字段取出,然後再做表關聯

結論:很明顯使用第二種,減少不必要的資料量

Mysql面試技術名詞

假如有兩個b 樹索引分別如下面的圖 1 id為主鍵,聚集索引,葉子節點儲存行記錄 2 name為key,普通索引,葉子節點儲存id值 然後現在有一條sql語句 select from t where name lisi 看看執行過程 這就是所謂的回表查詢,就是還要回表查詢一次。還是用上面的例子,這次...

mysql聯合索引技術 mysql 聯合索引詳解

聯合索引又叫復合索引。對於復合索引 mysql從左到右的使用索引中的字段,乙個查詢可以只使用索引中的一部份,但只能是最左側部分。例如索引是key index a,b,c 可以支援a a,b a,b,c 3種組合進行查詢,但不支援 b,c進行查詢 當最左側欄位是常量引用時,索引就十分有效。兩個或更多個...

mysql索引技術 MySQL索引知識介紹

前言 索引是mysql資料庫中的重要物件之一,索引的目的在於提高查詢效率。可以模擬字典中的目錄,查詢字典內容時可以根據目錄查詢到資料的存放位置,然後直接獲取即可。索引是表的目錄,在查詢內容之前可以先在目錄中查詢索引位置,以此快速定位查詢資料。需要說明的是,mysql支援諸多儲存引擎,而各種儲存引擎對...