尽量使用覆盖索引,避免select * || 用or分割开的条件,如果or前的条件中的列有索引,而后面的列中没有索引,那么涉及的索引都不会被用到|| 如果MySQL评估使用索引比全表更慢,则不使用索引
生活随笔
收集整理的這篇文章主要介紹了
尽量使用覆盖索引,避免select * || 用or分割开的条件,如果or前的条件中的列有索引,而后面的列中没有索引,那么涉及的索引都不会被用到|| 如果MySQL评估使用索引比全表更慢,则不使用索引
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
盡量使用覆蓋索引,避免select *
盡量使用覆蓋索引(只訪問索引的查詢(索引列完全包含查詢列)),減少select *
7). 用or分割開的條件,如果or前的條件中的列有索引,而后面的列中沒有索引,那么涉及的索引都不會被用到。
???? 示例,name字段是索引列,而createtime不是索引列,中間是or進行連接是不走索引的:
以%開頭的Like模糊查詢,索引失效
如果僅僅是尾部模糊匹配,索引不會失效。
如果是頭部模糊匹配,索引失效。
解決方案:通過覆蓋索引來解決
?如果MySQL評估使用索引比全表更慢,則不使用索引
總結
以上是生活随笔為你收集整理的尽量使用覆盖索引,避免select * || 用or分割开的条件,如果or前的条件中的列有索引,而后面的列中没有索引,那么涉及的索引都不会被用到|| 如果MySQL评估使用索引比全表更慢,则不使用索引的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 优化SQL步骤—— explain分析执
- 下一篇: is NULL , is NOT NUL