北京中科医院都是假的 http://www.znlvye.com/bybl/zbyf/m/有很多人对null值是否走索引感觉很疑惑,这个也要结合那个版本什么引擎来确定,我们现在mysql5.7存储引擎InnoDB(因为这个是当前主流mysql版本)下来做个测试,看看到底情况如何?开始进行试:创建表CREATETABLE`a`(`id`int(11)NOTNULLAUTO_INCREMENT,`name`varchar(45)DEFAULTNULL,`dd`int(11)DEFAULTNULL,PRIMARYKEY(`id`),KEY`name`(`name`))插入数据insertintoa(name)selectnull多次执行下面语句,将数据量达到十几万级别(数据太少不走索引)insertintoa(name)selectuuid_short()froma执行sqlSELECT*FROMawherename=;执行sqlSELECT*FROMawherenameisnull;结论:在mysql5.7存储引擎为InnoDB中,我们看到两个sql都是走索引的,并不会因为isnull而不走索引,所以字段为null并不会影响sql走索引。首先还是建议无论索引列还是其他列,都设置成非null,通过默认值解决null值问题。如果把索引列一些值设置为null,也是允许的,但是写sql时候就要用到isnull和isnotnull来进行筛选数据,这仅仅是语法的需要适配,但并不影响正确的走索引。
转载请注明:http://www.aierlanlan.com/rzdk/7887.html