mysql 日期与索引问题
日期类型可以直接和string格式的字符串比较
select * from xxx where event_time>'2018-06-02' 可以使用索引, mysql默认会把后面的字符串转成date类型。可以使用between and
select * from xxx where date(event_time)>'2018-06-02' 不能使用索引
如果时间戳日期和时间都要比较, 最好使用两个字段保存这个时间戳, 这样可以利用索引
select * from xxx where event_time>1239237428734; -- 使用错误, 不能这么用。可以使用from_unixtime()将数字转成日期类型
将date和time合并成一个datetime
select str_to_date(concat(ICDate,' ',ICTime),'%m/%d/%y %h:%i:%s %s') from XXXX
参考: https://stackoverflow.com/questions/2758486/mysql-compare-date-string-with-string-from-datetime-field
其他索引总结:
where条件等号两边字段类型不同,不走索引
like 'XXX%' 走索引, '%XXX%'不走索引
对字段进行函数运算不走索引
组合索引 只使用后面的字段不走索引,使用前后的字段走索引. 第一个字段有参于(而且字段类型匹配 没有函数运算),那么会走索引, 第一个字段可以在sql中的任意位置
组合索引遇到第一个不等值条件 即中断后面字段使用索引
字段类型不匹配,不走索引
示例:
name varchar, addr varchar, age int。 创建组合索引为name + addr + age
select * from t_user where name like '123%' and age>19; 走索引 type=range
select * from t_user where age>19 and name like '123%' ; 走索引 type=range
select * from t_user where name =123 不走索引 type=all
select * from t_user where name='123' 走索引 type=ref
select * from t_user where addr like '上城%' and age>30; 不走索引 type=all
explain 是否使用了索引
type=ALL是全表扫描
只要不是ALL, 都能使用索引,只是使用索引的方式不同,性能也有差异==>依次从好到差:system,const,eq_ref,ref,fulltext,ref_or_null,unique_subquery,index_subquery,range,index_merge,index,ALL
关于explain各个字段的解释:https://www.cnblogs.com/david97/p/8072164.html
索引不是越多越好, 两个index进行merge有时还不如只使用一个index
组合索引创建的依据:select distinct(xxx)/count(*) 值越大说明区分度越高 组合索引的价值越高
什么时候创建组合索引? 单列上查询出来的数据量都很大,但是两个组合查询的结果很小 ,此时创建组合索引就比较有意义
(原始的离线度都小,组合的离散度会大???) 0.8*0.8=0.64 0.8*0.5=0.4 如果整体的数据量级别很大,也有点效果
索引的类型
BTREE的时间复杂度: https://blog.csdn.net/weixin_38399962/article/details/79409118
orderby 是否使用索引
https://my.oschina.net/u/912810/blog/325177
orderby用到的索引和where中的索引如果一致, 可以提升不少性能
字符类型的索引需要指定长度
ALTER TABLE t_yyy ADD INDEX `xxx` (`request_type` ASC, `request_param`(15) ASC);
转载于:https://www.cnblogs.com/yszzu/p/9255769.html
mysql 日期与索引问题相关推荐
- mysql 日期索引的使用_日期使用
mysql 日期索引的使用 时区糟透了. 特别是夏令时. 我不介意像与此行为相关的编程错误那样,不停移动时钟或失去一个小时的睡眠. 更糟糕的是Java的旧日期/时间API. Java社区通过JSR 3 ...
- MYSQL || 的BUG // MYSQL 不同库自增id的问题 //MySQL根据表注释查找对应的表 //hive -mysql 日期比较
MYSQL 中的|| 与oracle 的concat 含义不同,它的含义是 or delete from table where 1=1 and code ='CW1111' and period_w ...
- mysql union 放弃索引_MySQL的or/in/union与索引优化
本文缘起自<一分钟了解索引技巧>的作业题. 假设订单业务表结构为: order(oid, date, uid, status, money, time, -) 其中: oid,订单ID,主 ...
- Mysql日期和时间函数大全
http://www.blogjava.net/Alpha/archive/2006/04/07/39844.html 对于每个类型拥有的值范围以及并且指定日期何时间值的有效格式的描述见7.3.6 日 ...
- mysql日期时间操作函数详解
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. win7可以设定每周从哪一天开始,win2003等不能方便的修改.有的是周日开始,有的是周一开始.而 ...
- MySQL基础之索引
MySQL基础之索引 基础 索引介绍 索引(在MySQL中也叫做"键(key)")是存储引擎用于快速找到记录的一种数据结构.索引是进行SQL优化时最常用的工具,但是不合理的索引 ...
- mysql 日期减10分钟_获取当前时间减去10分钟的话SQL语句怎么写
获取当前时间减去10分钟的话SQL语句怎么写 Mysql日期和时间函数不求人 本文出自:http://linuxdb.yeah.net 作者: 晏子 (2001-07-05 15:00:00) 对于每 ...
- MySQL日期和时间函数的用法及使用举例
MySQL日期和时间函数的用法及使用举例 MySQL提供了用于处理日期和时间的相关函数.现对这些函数的功能及用法进行介绍并举例. 创建数据表emp并输入数据: create table emp(emp ...
- mysql 日期比较_详解Mysql中日期比较大小的方法
假如有个表product有个字段add_time,它的数据类型为datetime,有人可能会这样写sql: 代码如下 select * from product where add_time = '2 ...
- mysql日期比较大小 方式_mysql中日期比较大小方法详解
在mysql中日期比较有许多的函数,下面我来给大家总结一下常用的mysql中日期比较大小有需要了解的朋友可进入参考参考,假如有个表product有个字段add_time,它的数据类型为datetime ...
最新文章
- 通过容器提交镜像(docker commit)以及推送镜像(docker push)笔记
- xshell执行结果到文本_xshell拷贝文件到本地
- P2662 牛场围栏(同余最短路)
- 初识openstack
- 科研人看过来!中国人工智能学会-华为MindSpore学术奖励基金发布通知
- 李飞飞点赞!,刚刚公布了第一批数据集benchmark入围名单
- ES2018 学习笔记(4)Unicode 和 ISO 10646
- 博客园自定义样式(标题 h1 h2 h3)
- Beijing54坐标系——Y坐标(6位数和8位数)区别
- 互联网公司的三高问题
- 利用INFOPATH2007VS2005开发MOSS工作流详解 --收藏
- python入门之运算符的使用的答案_python基础课程 第2章 (运算符)
- 华三虚拟机服务器型号,03-虚拟机配置
- 终结HashMap面试?我是谁?我在哪
- CNVD-2022-03672/CNVD-2022-10270:向日葵简约版/向日葵个人版for Windows命令执行漏洞复现及修复建议
- 身体健康才是福报!41岁蚂蚁金服总裁助理毛军华因病去世
- ArrayList的实现原理以及实现线程安全
- oracle如何判断数字中有字母,SQL 判断含有字母和数字的字符串
- win32com操作xlsm文件
- 【代码分解】用Python实现一个电影订票系统
热门文章
- Eclipse中输入点号(.)不提示类成员(函数、字段)的解决办法
- 慎用"加速"一词,可以使用"早日"代替
- 安卓应用改了图标无效,是缓存的问题
- C语言中的宏之#define
- python写数据库中间件_python 20 day form、model多对多操作、sql、中间件
- c语言程序游戏例子,C语言游戏编写例子.doc
- C++11 外部模板
- flamengo x ajax,Flamengo是什么意思
- 图示电路中的等效电阻rab_例1求图示电路的等效电阻rab.ppt
- python自定义损失函数_自定义损失函数sklearn