MYSQL索引失效的各種情況小結
一、對列使用函式,該列的索引將不起作用 。
如:substring(欄位名,1,2)='xxx';
二、對列進行運算(+,-,*,/,! 等),該列的索引將不起作用。
如:select * from test where id-1=9;//錯誤的寫法;
select * from test where id=10; //正確的寫法 ;
三、某些情況下的LIKE操作,該列的索引將不起作用。
如:欄位名 LIKE CONCAT('%', '2014 - 08 - 13', '%') ;
四、某些情況使用反向操作,該列的索引將不起作用。
如:欄位名 < > 2;
五、在WHERE中使用OR時,有一個列沒有索引,那麼其它列的索引將不起作用 。
六、隱式轉換導致索引失效.這一點應當引起重視.也是開發中經常會犯的錯誤 。
由於表的欄位t_number定義為varchar2(20),但在查詢時把該欄位作為number型別以where條件傳給Oracle,這樣會導致索引失效。
如: select * from test where t_number=13333333333; //錯誤的寫法;
select * from test where t_number='13333333333'; //正確的寫法;
七、使用not in ,not exist等語句時
。
八、當變數採用的是times變數,而表的欄位採用的是date變數時.或相反情況 。
九、當B-tree索引 is null不會失效,使用is not null時,會失效,點陣圖索引 is null,is not null 都會失效。
十、聯合索引 is not null 只要在建立的索引列(不分先後)都會失效 。
in null時 必須要和建立索引第一列一起使用,當建立索引第一位置條件是is null 時,其他建立索引的列可以是is null(但必須在所有列 都滿足is null的時候),或者 = 一個值;
當建立索引的第一位置是 = 一個值時,其他索引列可以是任何情況(包括is null = 一個值),以上兩種情況索引都會失效,其他情況不會失效。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69999637/viewspace-2775421/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mysql索引失效的情況MySql索引
- 簡單介紹MySQL索引失效的幾種情況MySql索引
- Mysql 會導致索引失效的情況MySql索引
- 盤一盤常見的6種索引失效情況索引
- mysql索引不會命中的情況MySql索引
- MySQL哪些情況需要新增索引?MySql索引
- 使用聯合索引的一種情況索引
- MySQL系列:索引失效場景總結MySql索引
- 個人學習系列 - @Transactional失效的3種情況
- vue日記②之相容各種情況的可跳轉連結Vue
- 探索MySQL的InnoDB索引失效MySql索引
- Java 各種鎖的小結Java
- MySql ORDER BY索引是否失效MySql索引
- 直接理解轉置卷積(Transposed convolution)的各種情況卷積
- Mysql索引失效問題demoMySql索引
- oracle order by索引是否使用的情況Oracle索引
- MySQL學習筆記:索引失效MySql筆記索引
- 聊一聊MySQL索引失效的問題MySql索引
- RabbitMQ如何解決各種情況下丟資料的問題MQ
- 變數轉化為判斷條件時的各種情況變數
- NoClassDefFoundError的兩種情況Error
- 月結各模組關閉情況查詢SQLSQL
- [20231024]NULL值在索引的情況.txtNull索引
- MySQL索引失效行鎖變表鎖MySql索引
- MySQL索引失效之隱式轉換MySql索引
- mysql四種索引MySql索引
- MySQL索引的結構MySql索引
- mysql資料庫操作之------查的各種小細節MySql資料庫
- 建立索引後,速度變快原因?以及索引失效總結索引
- Mysql兩種情況下更新欄位中部分資料的方法MySql
- MySQL二進位制日誌Mixed格式轉化為row格式的六種情況總結MySql
- Oracle 12.2中的索引統計被呼叫情況Oracle索引
- 資料治理--結構化資料處理 各種情況的資料重跑,流水錶用拉鍊表
- 資料庫事務併發問題----各種事務隔離下的情況資料庫
- if 判斷為 false 的 6 種情況False
- mysql索引總結MySql索引
- MySQL 索引結構MySql索引
- MySQL資料庫事務各隔離級別加鎖情況--read uncommittMySql資料庫MIT