MySQL高级 - SQL优化 - or优化
生活随笔
收集整理的這篇文章主要介紹了
MySQL高级 - SQL优化 - or优化
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
優(yōu)化OR條件
對于包含OR的查詢子句,如果要利用索引,則OR之間的每個條件列都必須用到索引 , 而且不能使用到復合索引; 如果沒有索引,則應該考慮增加索引。
獲取 emp 表中的所有的索引 :
示例 :
explain select * from emp where id = 1 or age = 30;?
?
建議使用 union 替換 or :
我們來比較下重要指標,發(fā)現(xiàn)主要差別是 type 和 ref 這兩項
type 顯示的是訪問類型,是較為重要的一個指標,結果值從好到壞依次是:
system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > ALLUNION 語句的 type 值為 ref,OR 語句的 type 值為 range,可以看到這是一個很明顯的差距
UNION 語句的 ref 值為 const,OR 語句的 type 值為 null,const 表示是常量值引用,非常快
這兩項的差距就說明了 UNION 要優(yōu)于 OR 。
總結
以上是生活随笔為你收集整理的MySQL高级 - SQL优化 - or优化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL高级 - SQL优化 - 子查
- 下一篇: MySQL高级 - SQL优化 - li