hello,大家早上好、中午好、晚上好、欢迎收看本次文章,我是声音甜美的鸡排妹。今天是周四,今天我给大家介绍一下优化insert,是如何进行快速插入呢,减少性能开销呢,下面鸡排妹讲解一下
对于包含OR的查询子句,如果要利用索引,则OR之间的每个条件列都必须用到索引 , 而且不能使用到复合索引; 如果没有索引,则应该考虑增加索引。
示例 :
explain select * from emp where id = 1 or age = 30;
建议使用 union 替换 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 。
閱讀更多 程序美學 的文章