看啥推荐读物
专栏名称: JAVA葵花宝典
java知识和技术查漏补缺,空余时间学习碎片化知识,分享开发、运维、架构等综合性知识,助力职场最后一公里与职业进阶,每天看宝典,就选它。
今天看啥  ›  专栏  ›  JAVA葵花宝典

MySQL中IS NULL、IS NOT NULL、!=不能用索引?胡扯!

JAVA葵花宝典  · 公众号  · Java  · 2019-07-16 19:31
不知道从什么时候开始,网上流传着这么一个说法:MySQL的WHERE子句中包含 IS NULL、IS NOT NULL、!= 这些条件时便不能使用索引查询,只能使用全表扫描。这种说法愈演愈烈,甚至被很多同学奉为真理。咱啥话也不说,举个例子。假如我们有个表s1,结构如下:CREATE TABLE s1 ( id INT NOT NULL AUTO_INCREMENT, key1 VARCHAR(100), key2 VARCHAR(100), key3 VARCHAR(100), key_part1 VARCHAR(100), key_part2 VARCHAR(100), key_part3 VARCHAR(100), common_field VARCHAR(100), PRIMARY KEY (id), KEY idx_key1 (key1), KEY idx_key2 (key2), KEY idx_key3 (key3), KEY idx_key_part(key_part1, key_part2, key_part3)) Engine=InnoDB CHARSET=utf8;这个表里有10000条记录:mysql> SELECT COUNT(*) FROM s1;+----------+| COUNT(*) |+----------+| 10000 |+----------+1 row in set (0.00 sec)下边 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照