mysql日期查询索引_mysql – 如何为这种查询索引两个日期列
对于查询:
WHERE NOW() >= date_from
AND NOW() <= date_to
复合索引(date_from,date_to)是无用的.
创建两个索引:(date_from)和(date_to)并让SQL优化器每次决定使用哪个索引.根据值和选择性,优化程序可以选择一个或另一个索引.或者都不是.没有简单的方法来创建将两个条件都考虑在内的索引.
(如果您可以将日期转换为纬度和经度,则可以使用空间索引来优化此类条件).
更新
我的错. (date_from,date_to,object_id)上的索引可以并且确实在某些情况下用于此查询.如果NOW()< = date_from的选择性足够高,则优化器选择使用此索引,而不是对表执行完全扫描或使用其他索引.这是因为它是覆盖索引,意味着不需要从表中提取数据,只需要从索引数据中读取数据. 次要说明(与性能无关,仅与查询的正确性有关).你的病情相当于:
WHERE CURRENT_DATE() >= date_from
AND ( CURRENT_DATE() + INTERVAL 1 DAY <= date_to
OR ( CURRENT_DATE() = NOW()
AND CURRENT_DATE() = date_to
)
)
你确定你想要那个或者你想要这个:
WHERE CURRENT_DATE() >= date_from
AND CURRENT_DATE() <= date_to
NOW()函数返回DATETIME,而CURRENT_DATE()返回DATE,没有时间部分.
mysql日期查询索引_mysql – 如何为这种查询索引两个日期列相关推荐
- mysql 回表查询优化_mysql:若何行使笼罩索引制止回表优化查询
说到笼罩索引之前,先要领会它的数据结构:B+树. 先建个表演示(为了简朴,id按顺序建): id name 1 aa 3 kl 5 op 8 aa 10 kk 11 kl 14 jk 16 ml 17 ...
- mysql查看使用的索引_Mysql查看是否使用到索引
mysql数据库创建索引优化之后,在查询时想看下是否使用到索引, 使用执行计划查看: mysql> explain SELECT * FROM tb_user WHERE STATUS=1 l ...
- mysql范围查找性能_MYSQL(四)查询性能优化
优化数据访问 1.是否向数据库请求了不需要的数据 解决方式: A. 查询后加limit B. Select后写需要的列而不是* 2. 是否扫描了额外的数据 数据库的访问方式速度由慢到快:全表扫描,索引 ...
- mysql按升序创建索引_Mysql中的降序索引底层实现
什么是降序索引 大家可能对索引比较熟悉,而对降序索引比较陌生,事实上降序索引是索引的子集. 我们通常使用下面的语句来创建一个索引: 上面sql的意思是在t1表中,针对b,c,d三个字段创建一个联合索引 ...
- mysql 多表查询 优化_Mysql 多表联合查询效率分析及优化
1. 多表连接类型 1. 笛卡尔积(交叉连接)在MySQL中可以为CROSS JOIN或者省略CROSS即JOIN,或者使用',' 如: SELECT * FROM table1 CROSS JOI ...
- 查询排序_Mysql在排序和查询时不使用索引的情况
1. 写在前头 这篇文章<Mysql是怎样运行的>,参考书中P123 - P125,它列举的就是在排序时不使用索引的情况,这让我回想起在面试的时候,被问到在查询时不使用索引的情况,所以我想 ...
- mysql多表 性能_Mysql 多表联合查询效率分析及优化
1. 多表连接类型 1. 笛卡尔积(交叉连接)在MySQL中可以为CROSS JOIN或者省略CROSS即JOIN,或者使用',' 如: SELECT*FROMtable1CROSSJOINtabl ...
- mysql 如何添加索引_MySQL如何创建一个好索引?创建索引的5条建议【宇哥带你玩转MySQL 索引篇(三)】...
MySQL如何创建一个好索引?创建索引的5条建议 过滤效率高的放前面 对于一个多列索引,它的存储顺序是先按第一列进行比较,然后是第二列,第三列...这样.查询时,如果第一列能够排除的越多,那么后面列需 ...
- mysql 建表时建立索引_mysql 分享建表和索引的几点规范
一. MySQL建表,字段需设置为非空,需设置字段默认值. 二. MySQL建表,字段需NULL时,需设置字段默认值,默认值不为NULL. 三. MySQL建表,如果字段等价于外键,应在该字段加索引. ...
- mysql 隐式转换 索引_MySQL SQL优化之字符串索引隐式转换
之前有用户很不解:SQL语句非常简单,就是select * from test_1 where user_id=1 这种类型,而且user_id上已经建立索引了,怎么还是查询很慢? test_1的表结 ...
最新文章
- POJ3277 线段树段更新,点询问+二分离散化+暴力
- 洛谷——P3807 【模板】卢卡斯定理
- 初学者如何选出最适合自己深度学习框架?
- KEILC51警告:WARNING L15: MULTIPLE CALL TO SEGMENT
- 【C++】Visual studio样式定制
- TP、PHP同域不同子级域名共享Session、单点登录
- archlinux安装个简单桌面icewm
- C ~ 指针函数与函数指针的区别
- 核方法(kernel method)的主要思想
- LogBack 日志等级设置无效,原因竟然是因为这个?!
- 【工具】Movielens数据集详细介绍
- word转PDF,导航窗格输出目录
- 怎样给word插入页码,点击进来有惊喜
- 一文搞定卷积神经网络——从原理到应用
- 概率论考点之排列与组合
- linaro软件源更新问题
- ip rule 命令
- 华三模拟器的错误使用方法
- 《PyQT5软件开发 - 控件篇》第3章 单行文本框QLineEdit
- 内网IT风险管控解决方案
热门文章
- win10计算机到桌面显示器,win10电脑外接显示器设置
- Delphi XE E2251 Ambiguous overloaded call to ‘StrPas‘错误处理
- word文档插入尾注,并且设置尾注在参考文献这一章
- 中国土地市场网lanchina.com数据采集过程
- 数据库工程师的几个发展方向
- Linux部署单体架构,从单体式架构迁移到微服务架构:三个策略叙述
- amd cpu排行_AMD R5系列处理器性能排名 CPU天梯图2017年4月最新完整版
- 图神经网络-图游走类模型-作业
- HTML基本知识学习 2021-04-08
- 新手gxf学python---文件操作之登录、注册功能