gpt4 book ai didi

MySQL - 高效的日期查询

转载 作者:行者123 更新时间:2023-11-29 23:26:45 24 4
gpt4 key购买 nike

我正在尝试优化一些涉及比较日期的查询。这是用 PHP 完成的。目前 WHERE 语句的设置如下所示:

WHERE
search_deals_online.expirationDate > DATE_ADD( CURDATE( ) , INTERVAL -1 DAY ) AND
search_deals_online.createDate > DATE_ADD( CURDATE( ) , INTERVAL -30 DAY )

但是,这似乎必须计算每一行的日期(~250k)。是否值得通过 PHP 对日期进行硬编码,使其看起来像:

WHERE
search_deals_online.expirationDate > '2014-11-12' AND
search_deals_online.createDate > '2014-10-13'

最佳答案

如果您发现需要经常执行此查询,那么您应该考虑使用覆盖相关日期列的索引。另外,请确保表上有一个 PRIMARY KEY 或一个有助于索引的 UNIQUE NOT NULL 字段。

然后,只需确保每个表达式的一侧是字段名称即可。例如,始终使用 search_deals_online.expirationDate > DATE_ADD( CURDATE() , INTERVAL -1 DAY ) 而不是 DATEDIFF(search_deals_online.expirationDate, CURDATE()) > 1。函数内的字段不是 SARGable并且不会利用您的索引。

关于MySQL - 高效的日期查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26894982/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com