我正在创建一个 Java 桌面应用程序。
我正在使用 mysql 数据库作为后端。
在我的应用程序中,一些查询被执行了不止一次,所以我想缓存查询结果以备下次使用。
对于缓存,我尝试了准备好的语句,但没有得到任何积极的结果。
有没有其他方法可以缓存查询和查询结果集?
最佳答案
请检查您使用的mysql版本。它似乎 在 MySQL 5.1.17 之前,准备好的语句不使用查询缓存。 http://dev.mysql.com/doc/refman/5.1/en/query-cache-operation.html
它还提到了一些查询缓存不起作用的情况。我认为替代方法是使用内存缓存,但我不知道它有多好。但有一件事可以肯定,如果您经常更新,所有这些缓存方法都无法正常工作。我猜你对缓存没有太多的控制,当实际表有更新时它会失效(以避免脏读)所以我想你的表在生产中不会经常更新。如果是这种情况,您可以很好地考虑使用应用程序级缓存,当然缓存失效服务/标准就位。
关于java - 缓存数据库查询和结果集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11920743/