索引優化及規則

2021-10-06 17:03:29 字數 765 閱讀 9207

索引建立規則:

1、表的主鍵、外來鍵必須有索引;

2、資料量超過一定量的表應該有索引;

3、經常與其他表進行連線的表,在連線欄位上應該建立索引;

4、經常出現在where子句中的字段,特別是大表的字段,應該建立索引;

5、索引應該建在選擇性高的字段上;

6、索引應該建在小字段上,對於大的文字字段甚至超長字段,不要建索引;

7、復合索引的建立需要進行仔細分析;盡量考慮用單字段索引代替:

a、正確選擇復合索引中的主列字段,一般是選擇性較好的字段;

b、復合索引的幾個字段是否經常同時以and方式出現在where子句中?單字段查詢是否極少甚至沒有?如果是,則可以建立復合索引;否則考慮單字段索引;

c、如果復合索引中包含的字段經常單獨出現在where子句中,則分解為多個單字段索引;

d、如果復合索引所包含的字段超過3個,那麼仔細考慮其必要性,考慮減少復合的字段;

e、如果既有單字段索引,又有這幾個欄位上的復合索引,一般可以刪除復合索引;

8、頻繁進行資料操作的表,不要建立太多的索引;

9、刪除無用的索引,避免對執行計畫造成負面影響;

select count(distinct(key))/count(*) as selectivity from table;

查詢區分度,區分度越高越適合建索引,建議是10%以上;

美團索引優化:

Oracle索引優化規則

索引優化規則 1.like件中不要以萬用字元 wildcard 開始,否則索引將不被採用.例 select lodging from lodging where manager like hanman 2.避免在索引列上使用計算或改變索引列的型別或使用 及 例 select from dept wh...

總結優化索引的規則

優化索引的規則如下 if 乙個表中有兩個索引 i1 and i2 and i1索引所涉及的列數 i2索引所涉及的列數 and i1索引中列的順序與i2索引中列的順序相同 then if i1索引是 unique then if i2索引是乙個外來鍵的參考列 then do nothing else ...

MySQL優化(三) 索引原理及索引優化

b tree索引,它是目前關係型資料庫中查詢資料最為常用和有效的索引,大多數儲存引擎都支援這種索引。使用b tree這個術語,是因為mysql在create table或其它語句中使用了這個關鍵字,但實際上不同的儲存引擎可能使用不同的資料結構,比如innodb就是使用的b tree。中的b是指bal...