Mysql 关于时间范围查询的优化思路
2019-10-11 07:05
4183 查看
ps:先说说写这个文章的原因吧, 因为我实在受不了这个mysql 时间范围查询如此之慢 。没办法总结出一些思路
这里只给出几点有关mysql 查询时间范围的建议
- 改用datetime timestamp 为时间戳int 模式。
来说说为什么,我们在查询数据库时间范围的时候 使用between and 时,我们可以采取explain 来测试一下mysql 的查询过程,很容易发现在between 查询时间范围时 type 为ALL Using Where 全表扫描不是我们想要的模式。我们可采取的优化思路就是换成int 的时间戳模式,在逻辑处理的时候增加一个时间转换。当然 在时间范围查询比较麻烦的时候。这样索引很容易命中。
- 一定要使用datetime timestamp时 可以采取的思路
首先就是分离出子查询,一定要将含时间范围的子查询分离出来,能使用查询索引,尽量命中索引。尽量避免多查询连接join,会更加拖慢mysql 的查询效率。
- 关于datetime 和 timestamp 的查询效率问题
首先要说明的是,几乎没啥区别,如果说有区别的话,那就是datetime的时间范围逼timestamp要大, 同时timestamp 比datetime 更节省空间,至于选择哪个类型,个人见仁见智。
- 最后要说的
虽然文章很短。 但是这个过程是心酸的,被领导逼的。
相关文章推荐
- 关于mysql inner join 连接查询的优化
- 关于时间的模糊查询 mysql
- mysql经纬度查询并且计算2KM范围内附近用户的sql查询性能优化实例教程
- Mysql根据时间查询日期的优化技巧
- mysql千万数数据查询优化思路
- 关于mysql inner join 连接查询的优化
- MySQL查询优化之二-范围优化(Range Optimization)
- Mysql 范围查询优化
- mysql 时间范围 查询
- mysql中between...and..的使用,及时间范围的查询
- MySql分页查询优化思路
- Mysql根据时间查询日期的优化技巧
- 关于mysql时间类型datetime与timestamp范围
- 关于mysql inner join 连接查询的优化
- 关于地图取多少公里范围内的司机/商户的查询优化
- Mysql 的查询缓存参数介绍与优化思路
- 关于mysql inner join 连接查询的优化
- 关于mysql时间类型datetime与timestamp范围
- 关于mysql 使用or连接索引失效引起的慢查询优化的初步实践
- mysql经纬度查询并且计算2KM范围内附近用户的sql查询性能优化实例教程