Java项目中使用UnixTime会遇到哪些问题?

mQney 2010-04-14 08:58:13
  大家好,我的一个项目中使用字符串“2010-04-14 08:54:00”存储时间,在千万数据级别的查询时候,用来以时间作为sql的where限制时候,速度很不理想,尤其是比较日期的时候还要substring(datetime,1,10)='2010-04-14';速度更加不理想。现在想用long类型的unixtime来存储时间,请问会遇到什么问题?
  另外,我上面说的使用string效率能否提高呢?
...全文
80 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
marf_cn 2010-04-14
  • 打赏
  • 举报
回复
首先,你的time字段是不是加了索引。另外,sql中千万不要在where子句里使用函数,这是大忌,最好把sql贴出来看看。
我觉得用long存储问题不大,代码层面多一个转换而已。
其实使用timestamp性能上应该没有太大问题,关键看你的sql
mQney 2010-04-14
  • 打赏
  • 举报
回复
select count(*) from tj_itemresult where substring(tjtime,1,10)='2010-04-13' and itemid=15 and df<>1 and resulttype<>1;

时间没加索引,存储内容是2010-04-14 08:54:00,但是查询时需要以日期为单位2010-04-13。所以where用了函数substring。

大家有什么优化建议呢?
liwenso 2010-04-14
  • 打赏
  • 举报
回复
用long不错,比string的比对更加简单。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧