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

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';

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

5595acb07557

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

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

果真,查询执行的是range:

5595acb07557

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/508303.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php mysql关键技术_中高级PHP开发者应该掌握哪些技术?

1.Linux能够流畅的使用Shell脚本来完成很多自动化的工作&#xff1b;awk/sed/perl 也操作的不错&#xff0c;能够完成很多文本处理和数据统计等工作&#xff1b;基本能够安装大 部分非特殊的Linux程序(包括各种库、包、第三方依赖等等&#xff0c;比如MongoDB/Redis/Sphinx/Lun…

python 简单socket_Python 简单socket

OSI七层模型(Open System Interconnection&#xff0c;开放式系统互联)应用层表示层回话层传输层 tcp,udp网络层 ip,icmp数据链路层 mac地址物理层 物理网卡服务端&#xff1a;import socket#实例化&#xff0c;绑定&#xff0c;监听&#xff0c;等待&#xff0c;解构(标识,ip-…

wxpython有哪些基本功能_用Python中的wxPython实现最基本的浏览器功能

通常&#xff0c;大多数应用程序通过保持 HTML 简单来解决大多数浏览器问题 ― 或者说&#xff0c;根据最低共同特性来编写。然而&#xff0c;即便如此&#xff0c;也仍然存在字体和布局的问题&#xff0c;发行新浏览器和升级现有浏览器时&#xff0c;也免不了测试应用程序的痛…

python增删改查mysql_python对数据库mysql的操作(增删改查)

#codingutf-8import pymysql# #查询# def connMySQL():# try:# connpymysql.connect(‘localhost‘,‘root‘,‘admin‘)# conn.select_db(‘five‘)# except Exception as e:# return e.args# else:# curconn.cursor()# cur.execute("select * from users")# datacu…

指数函数中x的取值范围_指数函数x的取值范围是

1、指数函数x的取值范围是a>0且a不1&#xff1b;2、指数函数是重要的基本初等函数之一。一般地&#xff0c;yax函数(a为常数且以a>0&#xff0c;a≠1)叫做指数函数&#xff0c;函数的定义域是 R &#xff1b;3、&#xff0c;在指数函数的定义表达式中&#xff0c;在ax前的…

java创建response对象_创建一个HttpResponse对象

创建一个HttpResponse对象HttpResponse类实现了javax.servlet.http.HttpServletResponse。跟随它的是一个叫做 HttpResponseFacade的faade类。Figure 3.3显示了HttpResponse类和它的相关类的UML图。在第2章中&#xff0c;你使用的是一个部分实现的HttpResponse类。例如&#xf…

java编译机制_java的编译机制

我们通常写的文件都是java文件,最后要在JVM上运行则需要将java文件编译成class(二进制文件).各厂商在实现JDK时通常会符合java语言规范的源码编译为class文件的编译器.编译器的好坏很大程度上决定了最后程序在机器上执行效率.通常使用Sun JDK(javac).javac将java源码编译成clas…

java excutorthread_JAVA 线程池ThreadPoolExcutor原理探究

概论线程池(英语&#xff1a;thread pool)&#xff1a;一种线程使用模式。线程过多会带来调度开销&#xff0c;进而影响缓存局部性和整体性能。而线程池维护着多个线程&#xff0c;等待着监督管理者分配可并发执行的任务。这避免了在处理短时间任务时创建与销毁线程的代价。线程…

java 继承作用_java三大特性之继承

继承(extends)&#xff1a;让类与类之间产生关系&#xff0c;子父类的关系继承的好处与弊端&#xff1a;好处&#xff1a;提高代码的复用性提高了代码的维护性让类与类之间产生关系&#xff0c;是多态的前提弊端&#xff1a;类的耦合性增加开发的原则是&#xff1a;1、高内聚&a…

java gui 单选_java GUI编程(swing)之三swing单选框复选框组件

swing复选框(JCheckBox) 单选框(JRadioButton)特别说明&#xff1a;同一组单选按钮&#xff0c;必须先创建一个ButtonGroup&#xff0c;然后把单选按钮放到ButtonGroup中package gui;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;import j…

websocket连接mysql_websocket 使用 spring 的service层 ,进而调用里面的 dao层 来操作数据库 ,包括redis、mysql等通用...

1.前言描述一下今天用websocket踩得坑 ---》空指针异常&#xff01;我想在websocket里面使用service 层的接口&#xff0c;从中获取数据库的一些信息 &#xff0c;使用 Autowired 注解 接口 &#xff0c;报错 空指针异常 &#xff01;&#xff01;&#xff01;查过资料才发…

世上最简单的mysql_最简单易懂的mysql安装教程

今天安装MySQL花了蛮长时间的&#xff0c;感觉坑还是挺多的&#xff0c;写遍文章总结一下。一、安装1.解压zip包到安装目录先从MySQL官网 下载mysql最新的免安装版压缩包解压之后变成这个样子&#xff1a;里面的文件是这个样子下面开始了&#xff0c;请注意2.配置文件在安装目录…

java if hasvalue_首选:可为空 .HasValue或Nullable !=空吗?

我一直使用Nullable<>.HasValue因为我喜欢这种语义。 但是&#xff0c;最近我正在开发其他人的现有代码库&#xff0c;其中他们专门使用Nullable<> ! null 。是否有理由优先使用一个&#xff0c;还是纯粹是偏爱&#xff1f;int? a; if (a.HasValue) // ...与int?…

Java 源程序的良好书写规范有哪些_使用Java作为程序语言时,好的命名规范有哪些...

变量名普通变量命名应该采用首字母小写&#xff0c;其他字母首字母大写的方式。final static变量的名字应该都大写&#xff0c;并且指出完整含义。如果一个常量名称由多个单词组成&#xff0c;则应该用下划线来分割这些单词如。NUM_DAYS_IN_WEEK MAX_VALU如果需要对变量名进行缩…

java邮箱exchange_使用Javamail访问Microsoft Exchange邮箱(IMAP,MS Exchange)

我需要通过IMAPS JavaMail连接到Microsoft Exchange Server.首先,我得到了&#xff1a;A1 NO AUTHENTICATE failed.javax.mail.AuthenticationFailedException: AUTHENTICATE failed.我的调试器中的异常.然后,我禁用了一些身份验证协议&#xff1a;imapProps.setProperty("…

java.equal例子_Java中的== 和equals()方法详解与实例

Java中的 和equals()方法&#xff1a;Java中的数据类型&#xff0c;可分为两类&#xff1a;1.基本数据类型&#xff0c;也称原始数据类型。byte,short,char,int,long,float,double,boolean&#xff0c;他们之间的比较&#xff0c;应用双等号(),比较的是他们的值。2.引用数据类型…

aix系统升级失败提示java_AIX系统补丁升级失败处理

问题描述&#xff1a;现网一台IBM P550小型机&#xff0c;初始版本通过oslevel –r命令检查为5300-02&#xff0c;在IBM官方网站下载5300-06补丁并升级到5300-06后系统报错&#xff0c;缺少sysmgt.websm.apps 5.3.0.60&#xff0c;sysmgt.websm.rte 5.3.0.60两个文件问题处理&a…

java 序列化工具kryo_java jackson avro kryo等几种序列化与反序列化工具的使用

最近由于工作需要&#xff0c;需要研究常用的集中序列化方式&#xff0c;主要目的是对象序列化后占用空间会大大减少&#xff0c;便于存储和传输&#xff0c;下面是几种序列化方式的使用demo1. Java自带的Serialize依赖jar包&#xff1a;无代码示意&#xff1a;import java.io.…

Java反射设置list的属性值_利用java反射比较两个实体有哪些属性值不一样

分享一个利用反射实现比较两个实体属性值的方法&#xff1a;package net.zwq1105.test;import java.beans.Introspector;import java.beans.PropertyDescriptor;import java.lang.reflect.Method;import java.sql.Timestamp;import java.util.ArrayList;import java.util.Array…

java编码规范右大括号换行_java编码规范摘选

1.方法注释模板;description&#xff0c;param&#xff0c;author可选&#xff1a;return&#xff0c;exception2. 行尾注释&#xff0c;如循环结束&#xff0c;模块类结束行3. 文件开头注释项目名称project n ame创建日期&#xff1a;{date}修改历史&#xff1a;版权声明&…