零和not null索引失效与否主要与表中字段的设立有关系,分为相应的两种情况,当对不能是空的字段使用索引时,条件无论是null或者not null索引都失效,当对能是空的字段使用索引时,条件无论是null或者not null索引都生效。
以下是零字段走索引的一个例子:
(root@localhost) -[09:51:01] -[(一)]在创建数据库测试;
查询好了,1行影响(0.02秒)
(root@localhost) -[09:51:09] -[(一)]在创建表“test_null”(
,,→,“id”int(11)默认为空,
,,→,“马克”varchar(20)默认为空
,,→)引擎=InnoDB默认字符集=utf8;
(root@localhost) -[09:51:26] -[(一)]在使用测试
数据库修改
(root@localhost) -[09:51:27] -[测试]在创建表“test_null”(
,,→,“id”int(11)默认为空,
,,→,“马克”varchar(20)默认为空
,,→)引擎=InnoDB默认字符集=utf8;
查询好,0行影响(0.37秒)
(root@localhost) -[09:51:29] -[测试]在分隔符//
(root@localhost) -[09:51:37] -[测试]在下降过程中如果存在test_null;
,,→创建过程test_null (num int)
,,→开始
,,→声明我int;,
,,→组i=1;,
,,→而(i
,,→DO
,,→,如果国防部(我,10)!=0 then
,,→,,,插入test_null值(我concat (& # 39; aaa # 39;,我));
,,→,其他的,
,,→,,,插入test_null值(null, concat (& # 39; aaa # 39;,我));
,,→,,如果;
,,→我=+ 1;,
,,→结束时;,
,,→结束;
,,→//
查询好,0行影响,1警告(0.00秒)
查询好,0行影响(0.00秒)
(root@localhost) -[09:51:38] -[测试]在分隔符;
(root@localhost) -[09:51:44] -[测试]祝辞叫test_null (10000);
查询好了,1行影响(12.34秒)
(root@localhost) -[09:52:03] -[测试]比;
(root@localhost) -[09:52:03] -[测试]比;
(root@localhost) -[09:52:03] -[测试]比;
(root@localhost) -[09:52:03] -[测试]比;
(root@localhost) -[09:52:03] -[测试]比;
(root@localhost) -[09:52:03] -[测试]祝辞test_null select count (*);
+----------+
| | count (*)
+----------+
|,,9999 |
+----------+
1行集(0.00秒)
(root@localhost) -[09:52:24] -[测试]在解释SELECT * from test_null id为空;
+ - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - +
| | id select_type |表,,| | |分区类型possible_keys |关键,| key_len | ref, |行,| |额外的过滤,,,|
+ - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - +
| 1 |简单的祝福;,,| test_null |空,,,所有,| |空,,,,零,零,| |零| 10003 | |大敌;10.00使用,| |
+ - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - +
MySQL null值字段是否使用索引的总结