在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 python怎么在已有视频文件后添加新帧
- ¥20 虚幻UE引擎如何让多个同一个蓝图的NPC执行一样的动画,
- ¥15 fluent里模拟降膜反应的UDF编写
- ¥15 MYSQL 多表拼接link
- ¥15 关于某款2.13寸墨水屏的问题
- ¥15 obsidian的中文层级自动编号
- ¥15 同一个网口一个电脑连接有网,另一个电脑连接没网
- ¥15 神经网络模型一直不能上GPU
- ¥15 pyqt怎么把滑块和输入框相互绑定,求解决!
- ¥20 wpf datagrid单元闪烁效果失灵