优化OR条件

hello,大家早上好、中午好、晚上好、欢迎收看本次文章,我是声音甜美的鸡排妹。今天是周四,今天我给大家介绍一下优化insert,是如何进行快速插入呢,减少性能开销呢,下面鸡排妹讲解一下

优化OR条件


对于包含OR的查询子句,如果要利用索引,则OR之间的每个条件列都必须用到索引 , 而且不能使用到复合索引; 如果没有索引,则应该考虑增加索引。

优化OR条件

示例 :

explain select * from emp where id = 1 or age = 30;

优化OR条件

建议使用 union 替换 or :

优化OR条件

我们来比较下重要指标,发现主要差别是 type 和 ref 这两项

type 显示的是访问类型,是较为重要的一个指标,结果值从好到坏依次是:

system > const > eq_ref > ref > fulltext > ref_or_null > index_merge >

unique_subquery > index_subquery > range > index > ALL


UNION 语句的 type 值为 ref,OR 语句的 type 值为 range,可以看到这是一个很明显的差距

UNION 语句的 ref 值为 const,OR 语句的 type 值为 null,const 表示是常量值引用,非常快

这两项的差距就说明了 UNION 要优于 OR 。


分享到:


相關文章: