Mysql、Oracle、PostgreSql資料庫索引失效場景詳細講解
- 前言
前言
Mysql、Oracle、PostgreSql資料庫索引失效場景詳細講解,廢話不多說直接貼:
1、任何計算、函式、型別轉換
2、!=、<>
3、IS NULL或者IS NOT NULL,類似導致索引失效的還有NOT IN,NOT LIKE等,但是NOT EXISTS不會導致索引失效,
4、模糊查詢通配符在開頭
5、索引欄位在表中占比較高
6、多欄位btree索引查詢條件不包含第一列
7、在WHERE中使用OR時,有一個列沒有索引,那么其它列的索引將不起作用
8、多欄位btree索引查詢條件不包含第一列
9、多欄位索引查詢條件使用OR
在索引列上進行大于大于這類的比較后,這個列的索引是有效的,但是其后的索引將失效
10、覆寫索引不寫*
盡量使用覆寫索引,而不要用select *,示例中,如果我們業務上只需要使用username、age、gender這三個欄位,那么我們就使用
select username, age, gender,而不要用select *,這是因為這三個欄位在索引中就已經維護了它們的值,定位索引后,就能檢索出
它們的值,如果使用select *的話,定位到索引后,由于索引沒有維護city的值,所以其后還會去檢索city的值,造成了時間開銷.
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/189779.html
標籤:其他
上一篇:Redis之基礎知識
