我曾经在性能博客中读到,最好使用
PHP的日期函数在MySQL查询中设置日期,而不是使用像curdate()这样的MysqL日期函数,因为MysqL可以缓存查询或结果或类似的东西.有没有人对此有任何见解?它有水还是无根据?
@H_404_12@
任何包含CURDATE()的函数都不会被缓存.
Source
例:
$query = 'SELECT id FROM table WHERE publish_date = \''.date('Y-m-d').'\'';
VS
$query = 'SELECT id FROM table WHERE publish_date = CURDATE()';
据我所知,硬编码日期仍应缓存.虽然您可能需要考虑使用prepare
功能而不是将字符串拼接到查询中(出于理智和安全考虑).