MySQL索引的相關知識點

2021-10-04 21:28:12 字數 1301 閱讀 4867

mysql

索引是一種資料結構

查詢效率獲得提高

myisam:

b+樹資料和索引分離

由三個檔案組成

frm 存放建立的表的基礎資訊

myi 索引

myd 資料

資料儲存,隨意儲存,離散程度大,即非聚集索引

即myisam都是非聚集索引

innodb

b+樹資料和索引結合,把索引當成資料的一部分

1、資料的存放依賴索引

1、主鍵 主鍵索引 主索引

2、唯一鍵 唯一索引 主索引

主索引:存放資料的索引,不允許索引值重複

3、新增乙個隱藏字段 6個位元組 主索引

葉子節點不能儲存完整的資料,所以其儲存的是主索引的索引值

儲存資料的索引叫主索引,其他的都叫輔助索引(葉子節點)

輔助索引查詢兩次:

第一次輔助索引找到主索引的索引值

第二次主索引找到資料

索引的建立能提高效率 能在其他欄位上建立索引

為什麼不自動建立:

索引是乙個資料結構,佔空間和其他資源

空間換時間的概率

索引的優化:

1、什麼時候建立索引

1、經常用於查詢的字段

2、主鍵的字段

3、用於兩表連線的字段 e.g.:where

4、經常用於排序查詢的字段

2、什麼時候不應該建立

1、不經常用於查詢的字段

2、數值較少的字段

3、text,blob型別等的字段,數值太大了,i/o效率低

4、修改效能大於查詢效能 insert密集型 排序

索引的分類

索引建立時,欄位的特性

1、普通索引

1、create index index_name on tbname(field_name);

2、alter table tbname add index index_name on field_name;

3、建表的過程中

index index_name(field_name);

2、主鍵索引

3、唯一索引

4、全文索引(一般情況不建議用)

非葉子節點的索引值都是text欄位的數值

數值太大了,索引結構龐大

i/o效率低

5、單列索引

6、組合索引(屬於多列索引)

最左字首原則,從最左邊開始包含

索引的注意事項:

1、包含null的列

2、使用短索引 提高i/o效率

3、like語句的操作,模糊匹配,不會用到索引

Mysql 索引知識點

概述 之前寫過一篇mysql b 樹學習,簡單的介紹了b 數以及mysql使用b 樹的原因,有了這些基礎知識點,對mysql索引的型別以及索引使用的一些技巧,就比較容易理解了。覆蓋索引 建立了乙個輔助索引,如果能直接從這個輔助索引檔案中獲取到資料,而無需去訪問聚集索引 自增主鍵索引 檔案的話,那麼這...

Mysql相關知識點

1 對於mysql表中有乙個時間字段,要根據時間字段計算,在某一時間段中,該表中的所有記錄。例子如下 在t druid info表中,ctime是時間字段,查詢t druid info表中,七月份接入的,並且執行著的任務總數,sql語句如下 select count from t druid inf...

mysql索引優化知識點

想要了解索引的優化方式,必須要對索引的底層原理有所了解 索引的用處 索引的分類 面試技術名詞 索引採用的資料結構 索引匹配方式 create table staffs id int primary key auto increment,name varchar 24 not null default...