我正在寻找解决方案,将当前时间四舍五入到几分钟而不使用MySQL中的now()。这一点是得到一个查询,它将由查询缓存处理至少一分钟。使用now()时,查询每秒都会更改,并且查询缓存不会被允许使用。
答案 0 :(得分:3)
查询缓存永远不会缓存使用非确定性函数的查询,并且所有时间函数根据定义都是不确定的。
您最好的选择是在应用程序中构建时间字符串并将整个查询传递给MySQL。
如果查询无法缓存 包含任何显示的功能 下表
BENCHMARK() CONNECTION_ID() CONVERT_TZ() CURDATE() CURRENT_DATE() CURRENT_TIME() CURRENT_TIMESTAMP() CURTIME() DATABASE() ENCRYPT() with one parameter FOUND_ROWS() GET_LOCK() LAST_INSERT_ID() LOAD_FILE() MASTER_POS_WAIT() NOW() RAND() RELEASE_LOCK() SLEEP() SYSDATE() UNIX_TIMESTAMP() with no parameters USER() UUID() UUID_SHORT()
查询也不会缓存在这些下面 条件:
它指的是用户定义的函数(UDF)或存储的函数。
它指的是用户变量或本地存储的程序变量
[...]