2020-10-09 資料庫索引
阿新 • • 發佈:2020-10-11
一 索引優勢
- 通過建立索引,可以在查詢的過程中,減少查詢時間
- 建立唯一索引,保證資料的的唯一性
- 創在使用分組和排序子句對索引列進行資料檢索時,可以減少查詢中分組和排序的時間(MySQL查詢只使用一個索引,因此如果where子句中已經使用了索引的話,那麼order by中的列是不會使用索引的)
- 對於外來鍵建立索引,可以加速表與表直接的相連
二 索引劣勢
- 佔用物理空間
- 建立和維護需要時間
- 鑑於第二點,所以在新增,修改,刪除資料時,會涉及到索引的更新,導致更加消耗時間
三 索引使用的列
(鑑於優勢來引導)
- 經常用去查詢的列
- where中的查詢列
- 用於關聯的列
- 用於分組,排序的列
- 主鍵列建立主鍵索引
- 經常需要根據範圍進行搜尋的列上
四 索引失效
- 條件中用or ,注意:
-
對於多列(複合、聯合)索引,不是使用的第一部分,則不會使用索引。(最左匹配原則或者叫做最左字首原則)
- like的模糊查詢以%開頭,索引失效。
- 判斷索引列是否不等於某個值時。‘!=’操作符。
- 對索引列進行運算。
- 查詢時使用is null 或is not null。
- 如果列型別是字串(varchar),那一定要在條件中將資料使用引號引用起來,否則不會使用索引
五 索引演算法
好難。。。。