3

我正在创建一个 java 桌面应用程序。

我使用 mysql 数据库作为后端。

在我的应用程序中,一些查询被执行了不止一次,所以我想缓存查询结果并在下次使用。

对于缓存我尝试准备好的语句,但我没有得到任何积极的结果。

有没有其他缓存查询和查询结果集的方法?

4

2 回答 2

1

请检查您使用的 mysql 版本。似乎在 MySQL 5.1.17 之前,prepared statements 不使用查询缓存。 http://dev.mysql.com/doc/refman/5.1/en/query-cache-operation.html

它还提到了查询缓存不起作用的一些条件。我认为替代方案是使用 memcache,但我不知道它有多好。但可以肯定的是,如果您经常更新,所有这些缓存方法都无法正常工作。我猜你对缓存并没有太多的控制权,当实际表有更新时它会失效(以避免脏读)所以我想你的表在生产中并没有那么频繁地更新表。如果是这种情况,您可以很好地考虑使用应用程序级别的缓存,当然还有缓存失效服务/标准。

于 2012-08-12T09:37:42.833 回答
0

如果你想从你的 MySQL 服务器获得优化和快速的响应,那么你需要向你的 MySQL 服务器添加以下两个配置指令:

query_cache_size=SIZE
The amount of memory (SIZE) allocated for caching query results. The default value is 0, which disables the query cache.

Now setup cache size 16Mb:
    mysql> SET GLOBAL query_cache_size = 16777216;

或者

Append config directives as follows into my.cnf file:

query_cache_size = 268435456
query_cache_type=1
query_cache_limit=1048576
于 2012-08-12T08:18:59.963 回答