我知道使用UNIX_TIMESTAMP()会导致MySQL不缓存查询,这是合理的。但是,如果我使用UNIX_TIMESTAMP()来转换DATETIME列,它是否也会错过缓存?
答案 0 :(得分:3)
如果将值或列作为参数传递给UNIX_TIMESTAMP()
,它仍会被缓存。
如果您不知道,还需要知道,对表的任何更改都会导致缓存被清除。因此,如果您要查询的表经常更改,那么查询缓存可能没有太多好处。
从5.5 manual:
如果查询包含下表中显示的任何功能,则无法缓存该查询 - 没有参数的UNIX_TIMESTAMP()