在created_at列加索引的前提下。
表数据量千万级别。
explain显示扫描行数是二百万的级别
select count(*) from users where created_at<'2018-08-28 00:00:00' and created_at>='2018-08-01 00:00:00'
count大概是四五十万级的别。这种范围查询 created_at用int时间戳和timestamp性能上哪种会比较好
MySQL中字段用int时间戳还是用timestamp?因为查询时该字段上有比较多的范围查询?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
5条回答 默认 最新
- qq_38535182 2018-08-29 07:56关注
建议你用timestamp就行了,如果你需要利用timestamp进行范围查询,可以在该列添加索引。
至于性能上哪种会比较好,我没有试过,以下是我推测给的建议:因为实际上mysql内部存储日期实际上就是整数,仅仅是表现形式不太一样,timestamp更易读,所以,我不认为这二者性能会有多大差距。如果可以,你可以造几十万条数据来测试一下我的猜测。测试时注意查询缓存的影响。
解决 无用评论 打赏 举报
悬赏问题
- ¥15 opencv图像处理,需要四个处理结果图
- ¥15 无线移动边缘计算系统中的系统模型
- ¥15 深度学习中的画图问题
- ¥15 java报错:使用mybatis plus查询一个只返回一条数据的sql,却报错返回了1000多条
- ¥15 Python报错怎么解决
- ¥15 simulink如何调用DLL文件
- ¥15 关于用pyqt6的项目开发该怎么把前段后端和业务层分离
- ¥30 线性代数的问题,我真的忘了线代的知识了
- ¥15 有谁能够把华为matebook e 高通骁龙850刷成安卓系统,或者安装安卓系统
- ¥188 需要修改一个工具,懂得汇编的人来。