索引選擇原則

2022-07-11 21:06:09 字數 1895 閱讀 3917

explain分析語句與profile分析

聯合索引結構與索引匹配原則

mysql對於索引優先考慮的物件

mysql索引的挑選原則

explain + query語句

explain select id from products order by id limit 10000000,1  

主要看看select_type(查詢型別)、type(索引型別)、key(索引),key_len(索引長度,組合索引中可以用到)、rows(找到資料前檢索的行數),extra(額外資訊)

profile使用方法:

//開啟分析

set global profiling=1;
執行查詢語句:

select id from products order by id limit 10000000,1
查詢所有profiles

檢視 剛才查詢語句的詳細分析

//關閉分析

set global profiling=0;
聯合索引結構與索引匹配原則

最左字首匹配原則:在mysql建立聯合索引時會遵守最左字首匹配原則,即最左優先,在檢索資料時從聯 合索引的最左邊開始匹配。

mysql對於索引優先考慮的物件

mysql索引的挑選原則

字段一般是推薦重複比較少的字段影響到資料的檢索,如果是專案需求(可建立聯合索引)

唯一字段可以單獨建立單索引,非唯一考慮聯合索引,推薦盡量使用唯一字段建立索引

索引的個數,聯合索引的個數 最佳 6個 以內,如果索引因為專案需求:最多 10個

索引的使用遵循最左匹配原則其次覆蓋索引

盡量選擇小的字段建立索引 int ,varchar(10), char(5)

避免 ,>= , % ,between 這樣的條件。選擇索引的字段的範圍和模糊之前,因為範圍與模糊 會引起索引失效,針對於聯合索引,就是聯合索引的中間盡量不要有範圍查詢的字段

盡量多使用explain分析

避免更新頻繁的字段 (二叉樹會一直變化,導致效能變慢)

建立的索引- 優先考慮 建立 聯合索引

索引字段不要有 null, 不是 『』

1. 唯一字段可以建立單索引 where  id = 4  非唯一字段可以考慮建立聯合索引

2. 索引的個數與包含的字段,最佳是不超出6個,勉強可以是10個 =》 垂直分表

3. 索引的使用遵循最左匹配原則其次就是覆蓋索引

4. 索引的選擇字段盡量要小一些 int varchar(10) char(5) es 儲存文字路徑

5. 避免 like between 等範圍查詢

explain select name from staffs where name like "s%"; 可以使用到索引

explain select * from staffs where name like "%ars%";

explain select * from staffs where name like "%sky";

6. 盡量多使用explain進行分析

7. 優先考慮建立聯合索引,索引的字段不要包含null 或者是 '';

mysql 選擇索引 mysql選擇索引

1 盡量為用來搜尋 分類或分組的資料列編制索引,不要為作為輸出顯示的資料列編制索引。最適合有索引的資料列是那些在where子句中資料列,在聯結子句 現的資料列,或者是在group by order by子句 現的資料列。select 後的資料列最好不要用索引。2 綜合考慮各資料列的維度。資料列的維度...

索引優化原則

索引優化原則 1 資料型別的選擇 資料型別越小越好,越簡單越好,避免null值 2 索引的列順序 索引的列順序很重要,例如index a,b 當where中有a或a b時,索引會被使用,但只有b時則不會被使用。因為a是這個組合索引的引導列,缺少引導列則索引不會被呼叫 這點不是非常確定,有的是這樣有的...

索引設計原則

資料庫常用索引來提高檢索資料效能,本次主要針對mysql 5.0的索引型別 建立索引 create view v payment as select from payment mysql create view v payment as select from payment myisam quer...