2020-02-27

最近一个日志页面查询很慢,然后去跟踪了查询sql,发现日期字段上即使建了索引,查询还是很慢,执行语句还是使用了全表扫描,于是继续分析下去。

查询语句类似:

select * from logs where createtime >= '2020-01-01' ;

起初因为date上没检索,查询执行的是全表扫描,给条件字段createtime建上索引:

create index idx_createtime on logs(createtime);

再次执行:

expain select id, createtime from logs where createtime >= '2019-01-01' and createtime <= '2020-01-01';

查询执行的还是全表扫描:

网上查询有说是因为在查询数据条数约占总条数五分之一以下时能够使用到索引,但超过五分之一时,使用全表扫描。于是把日期范围缩小:

expain select id, createtime from logs where createtime >= '2020-01-01' and createtime <= '2020-02-01';

果真,查询执行的是range:

由此可知,在进行范围查询时,比如:>、< 、>=、<=等, 如果数据量过大的话,即使where条件字段已经建立了索引,查询语句执行时还是有可能进行全表扫描的。

实际上是不是全表的五分之一以下才会使用索引,这个不能确定,以后再研究了。

mysql时间字段不走索引_MySQL使用=或=范围查询时不走索引相关推荐

  1. oracle联合主键 索引,关于复合主键查询时使用索引研究

    当数据库创建表时,每个表只能有一个主键,但是如果想让多个列都成为主键时,就要用到复合主键. 一.主键唯一约束 我们知道当某列为主键时,Oracle会自动将此列创建唯一约束.也就是说不允许有相同的值出现 ...

  2. c 读取mysql 时间字段_MySQL中的时间字段的几种数据类型比较

    1.序言 ​ 最近在项目开发时,对于MySQL数据库中的有关时间的字段该选用何种类型,引发了一些争论.所以做了一些简单的研究,看了一些blog,和官方文档.最后做出一个自己的总结. 2.类型比较 IN ...

  3. MySQL时间字段效率_MYSQL数据库时间字段INT,TIMESTAMP,DATETIME性能效率比较

    正 文: 在数据库设计的时候,我们经常会需要设计时间字段,在MYSQL中,时间字段可以使用int.timestamp.datetime三种类型来存储,那么这三种类型哪一种用来存储时间性能比较高,效率好 ...

  4. mysql unix时间加索引_【mysql】mysql时间字段怎么加索引

    查询时需要根据时间字段进行范围查询,timestamp类型.语句没有子查询.关联查询,只查这一张表. 查出5万条结果大约需要4.5秒,这个字段已经加了普通索引,但是explain的类型还是ALL. 怎 ...

  5. mysql时间字段使用索引

    索引可以提高查询效率,平时按照时间查询经常遇到,所以就会给时间添加索引,但是添加索引怎么用呢? 首先创建一张表test_table 然后给时间字段创建索引 导入大量数据,可以使用存储过程 查看一下表中 ...

  6. mysql 时间相减取秒_MySQL两个日期字段相减得到秒的方法

    一.MySQL中两个DateTime字段相减 假定表名为tblName,两个DateTime字段名分别为beginDateTime,endDateTime,以下是相关两个mysql日期字段相减的SQL ...

  7. mysql时间字段条件查询_mysql 查询 时间作为查询条件

    今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 昨天 SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ...

  8. MySQL索引失效原因,SQL查询语句不走索引原因

    前言 日常工作中索引失效原因很多,这个需要平时的日积月累,不断学习,才能更正确的发挥索引的作用,下面简单总结一些索引失效原因. 1. 隐式的类型转换,索引失效 select * from test w ...

  9. mysql 各表charset不同_MySQL表字段字符集不同导致的索引失效问题

    1. 概述 昨天在一位同学的MySQL机器上面发现了这样一个问题,MySQL两张表做left join时,执行计划里面显示有一张表使用了全表扫描,扫描全表近100万行记录,大并发的这样的SQL过来数据 ...

最新文章

  1. 机器学习中的数学:一份新鲜出炉的热门草稿
  2. Javascript编码规范,好的代码从书写规范开始,增强代码的可读性,可维护性,这是相当重要的!...
  3. Redis Zrevrangebyscore 命令
  4. 使用Decision Tree对MNIST数据集进行实验
  5. 通过goole获取手机唯一标识
  6. Visual Studio 2015上安装Entity Framework Power Tools
  7. Java Spring源码研究之BeanNameUrlHandlerMapping
  8. 第三章 数据的图形展示
  9. Sum of Log(2020上海C)
  10. 【ACM】N皇后问题
  11. python 多次匹配_Python学习记录14
  12. opencv手册_OpenCV之单目测距实现
  13. Docker简介及Linux下安装
  14. 源代码分析工具推荐Understand
  15. apifox通过若依平台登录传参获取token
  16. vul/0day/shellcode/payload/poc/exp
  17. 深度学习第19天_项目1_文本分类的介绍
  18. java对于微信平台语音接收以及处理,语音下载以及arm格式转换MP3
  19. 商品品牌信息的增删改查操作步骤_畅购商城(三):商品管理
  20. Win7系统安装Pycharm专业版

热门文章

  1. 改进初学者的PID-积分饱和
  2. 软件工程课的分数系统,和打分方法
  3. 现代软件工程讲义 目录
  4. Android studio中获取按钮组的信息如何循环遍历
  5. 农历php,PHP农历公历转换
  6. 马冬晗学习计划表_一年时间提升学习和工作能力,我做对了这3点
  7. java 指代对象_java-This的理解
  8. python3 web服务器_python3 简单web服务器
  9. jupyternotebook虚拟环境无法连接服务_详解pycharm连接远程linux服务器的虚拟环境的方法_python...
  10. python需要配置环境变量吗_python安装和配置环境变量