请教大家TO_DAYS效率问题

Jim@luckeeinc.com 2011-02-24 09:59:18
我现在有个表里面的数据笔数很多,这个表中有个字段比如叫htdate是放的时间
我现在想统计TO_DAYS('2011-02-22') - TO_DAYS(htdate) > 30 的笔数
在关联了几个表后where后面加上这个条件TO_DAYS('2011-02-22') - TO_DAYS(htdate) > 30 发现跑的很慢

请教大家有没有什么比较好的写法?
...全文
442 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jim@luckeeinc.com 2011-02-24
  • 打赏
  • 举报
回复
好的 我试一下 谢谢楼上
ACMAIN_CHM 2011-02-24
  • 打赏
  • 举报
回复
TO_DAYS('2011-02-22') - TO_DAYS(htdate) > 30 这样会导致查询中没有索引可以利用。

相同功能可以考虑换成

where htdate<'2011-02-22' - interval 30 day
rucypli 2011-02-24
  • 打赏
  • 举报
回复
恩 不要对字段加函数
Jim@luckeeinc.com 2011-02-24
  • 打赏
  • 举报
回复
上百万的记录 如果能在sql语句里过滤掉那最好了
如果都取出来在程序里计算的话 结果集里也要做上百万次的循环
ldb2741 2011-02-24
  • 打赏
  • 举报
回复
数据库是存储数据的,尽量不要在sql语句使用函数,而应该在程序里计算
zuoxingyu 2011-02-24
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 acmain_chm 的回复:]
TO_DAYS('2011-02-22') - TO_DAYS(htdate) > 30 这样会导致查询中没有索引可以利用。

相同功能可以考虑换成

where htdate<'2011-02-22' - interval 30 day
[/Quote]

不同的写法效率就差很多咯。

56,678

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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