美文网首页JavaWeb 知识点数据库
【mysql 索引】where 条件 is not null 和

【mysql 索引】where 条件 is not null 和

作者: zhengzj | 来源:发表于2018-09-11 15:44 被阅读0次

【字段属性为null】

1.  where 条件中有is null 时  索引起作用

例子1

SELECT COUNT(1) FROM ***_repair_sheet_zuche_info a WHERE a.`loss_assessment_status` IS NULL -- 数据量大约为4w

SELECT * FROM ***_repair_sheet_zuche_info WHERE loss_assessment_status IS NULL -- 4w 走索引

例子 2

SELECT COUNT(1) FROM ***_repair_sheet_zuche_info WHERE claim_nos IS NULL; -- 数据量大约为11

SELECT * FROM ***_repair_sheet_zuche_info WHERE claim_nos IS NULL; -- 11 走索引

2.  where 条件中有 is not null 时候 索引起作用(数据量差异性不会很大)

例子1

SELECT COUNT(1) FROM ***_repair_sheet_zuche_info a WHERE a.`loss_assessment_contacts` IS NOT NULL -- 数据量大约为667

SELECT * FROM ***_repair_sheet_zuche_info WHERE loss_assessment_status IS NOT NULL -- 667 走索引

例子2

-- 4w 数据量远远大于为空的数据

SELECT COUNT(1) FROM ***_repair_sheet_zuche_info a WHERE a.claim_nos IS NOT NULL;

- 4w 数据量远远大于为空的数据 不走索引,全表扫描 比走索引更好

SELECT * FROM ***_repair_sheet_zuche_info a WHERE a.claim_nos IS NOT NULL;-

综述: 字段属性为null 时, where 条件中 is not null 和 is null 都走索引 (前提有建索引)(除了数据差异性太大除外)



【字段属性为not null】

1.  where 条件中有 is not null 时  索引不起作用

-- 4w 全表扫描 字段类型已定义为not null ,加索引对于where 条件中的is not null 没有什么意义

SELECT * FROM ***_repair_sheet_zuche_info a WHERE a.repair_sheet_id IS NOT NULL;

2.  where 条件中有 is null 时  索引不起作用

SELECT * FROM t_vrms_repair_sheet_zuche_info WHERE repair_sheet_id IS NULL; -- 0 同理

   综述  字段属性为not null 时,where 条件中 is not null  和 is null 都不走索引


相关文章

  • 【mysql 索引】where 条件 is not null 和

    【字段属性为null】 1. where 条件中有is null 时 索引起作用 例子1 SELECT COUNT...

  • 面试总结

    1.Java编程 2. Mysql添加索引后查询速度没有变化 mysql查询语句的where条件字段和select...

  • MySQL优化:单索引的选择-index_merge

    1.多个单索引 where子句后有多个查询条件,MySQL 5.1以前即使分别为每个条件建立索引,查询优化器也只会...

  • sql优化总结

    1.在where和order by 涉及的列上建立索引2.where中对null(空值)判断,否则导致引擎放弃索引...

  • mysql索引失效场景

    WHERE字句的查询条件里有不等于号(WHERE column!=…),MYSQL将无法使用索引类似地,如果WHE...

  • 高性能MySQL索引(Innodb)

    前置问题 where条件的顺序会影响索引的使用? 联合索引(idx_a_b ) 条件:“where a > 1 a...

  • mysql

    一 mysql基础 二 mysql索引 什么是索引 索引是一种数据结构,解决查询语句中where和order by...

  • MySQL索引失效的几种情况

    MySQL索引失效的几种情况 1.索引无法存储null值 a.单列索引无法储null值,复合索引无法储全为null...

  • 服务端指南 数据存储篇 | MySQL(04) 索引使用的注意事

    MySQL 索引通常是被用于提高 WHERE 条件的数据行匹配时的搜索速度,在索引的使用过程中,存在一些使用细节和...

  • mysql之条件语句

    mysql之条件语句where和having的区别。当我们需要按条件对查询结果进行筛选,就需要条件语句WHERE和...

网友评论

    本文标题:【mysql 索引】where 条件 is not null 和

    本文链接:https://www.haomeiwen.com/subject/ssjugftx.html