MySQL缓存和日期函数

dqh*_*cks 6 php mysql date query-cache

我曾经在性能博客中读到,最好使用PHP的日期函数在MySQL查询中设置日期,而不是使用像curdate()这样的mysql日期函数,因为mysql可以缓存查询或结果或类似的东西.有没有人对此有任何见解?它有水还是无根据?

例:

$query = 'SELECT id FROM table WHERE publish_date = \''.date('Y-m-d').'\'';
Run Code Online (Sandbox Code Playgroud)

VS

$query = 'SELECT id FROM table WHERE publish_date = CURDATE()';
Run Code Online (Sandbox Code Playgroud)

Ken*_*ins 7

任何包含的函数CURDATE()都不会被缓存.资源

据我所知,硬编码日期仍应缓存.虽然您可能需要考虑使用该prepare功能而不是将字符串拼接到查询中(出于理智和安全考虑).