MySQL null值字段是否使用索引的总结

  

  零和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值字段是否使用索引的总结