美文网首页
mysql负向查询(>,<,in,not in……)以及betw

mysql负向查询(>,<,in,not in……)以及betw

作者: tiube00001 | 来源:发表于2017-09-29 23:12 被阅读0次

常见的误区:

经常在网上看到这样的mysql索引优化:使用between代替>和<,可以避免索引无法使用的情况,以及in无法使用索引等。其实这都是有一定误区的。首先声明一个观点:>,<,in,between等等,都是可以使用索引的。
测试用表:one,数据2621440行,版本:5.5.53


image.png

当使用“between”时,却无法使用索引:

image.png

当使用“>”和“<”时,却又能使用索引:

image.png

其他都不一 一截图了,充分证明。between,>,<这些运算符使用索引,并不是简单的一刀切。

重点来了,其实在这些运算符使用索引的因素是:随机IO的高低,说得直白点就是:between的范围,>,<的范围,以及in条件字符串的长度,请看以下截图:

image.png image.png image.png image.png

上面四张图,前面两张图都使用上了索引,但后面仅将范围增加了1,就导致索引无法使用。而且between和“>”“<”的范围惊人的一致……

至于其它如in这些,由于时间有效,就不一一验证了。所以,网上的信息不可尽信,还是要自己动手验证

相关文章

  • mysql负向查询(>,<,in,not in……)以及betw

    常见的误区: 经常在网上看到这样的mysql索引优化:使用between代替>和<,可以避免索引无法使用的情况,以...

  • MySQL索引相关原则

    索引创建原则 模糊查询请最好遵守最左前缀查询原则。 a.mysql会一直向右匹配直到遇到范围查询(>、<、betw...

  • DQL 查询表中数据

    简单查询 去重操作 运算查询 条件查询 运算符说明> < <= >= = <> !=<> != 都是不等于BETW...

  • 查询MYSQL表注释以及字段注释

    查询MYSQL数据库所有表名以及表注释 查询MYSQL数据库所有字段名以及字段注释

  • MySQL

    mysql递归查询组织机构mysql 递归查询 MySQL教程之concat以及group_concat的用法 M...

  • Mysql建索引的注意事项

    建索引的几大原则 1.最左前缀匹配原则,非常重要的原则,mysql会一直向右匹配直到遇到范围查询(>、<、betw...

  • mysql慢查询日志

    慢查询日志 MySQL 慢查询日志是排查问题 SQL 语句,以及检查当前 MySQL 性能的一个重要功能,执行时间...

  • MySQL(二)MySQL索引原理

    1. 索引类型 索引可以提升查询速度,会影响where查询,以及order by排序。MySQL索引类型如下: 从...

  • 条件查询Where

    分组前的查询条件Where,where条件语句中常见运算符如下:1 >,<,>=,<=,<>(!=) 2 Betw...

  • MySQL必知必会系列二

    读完MySQL必知必会系列一,我们可以进一步了解MySQL中的数据处理函数,分组查询,联结表,以及组合查询的相关内...

网友评论

      本文标题:mysql负向查询(>,<,in,not in……)以及betw

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