簡體   English   中英

緩存數據庫查詢和結果集

[英]Cache database query and result set

我正在創建一個java桌面應用程序。

我使用mysql數據庫作為后端。

在我的應用程序中,一些查詢被執行多次,所以我想緩存查詢結果並在下次使用它。

對於緩存我嘗試准備好的聲明,但我沒有得到任何積極的結果。

是否有其他方法可以緩存查詢和查詢結果集

請檢查您正在使用的mysql版本。 看來在MySQL 5.1.17之前,預備語句不使用查詢緩存。 http://dev.mysql.com/doc/refman/5.1/en/query-cache-operation.html

它還提到了一些查詢緩存無法工作的條件。 我認為替代方法是使用memcache,但我不知道它有多好。 但有一點可以確定,如果您經常更新,所有這些緩存方法都不能正常工作。 你真的對緩存沒有太大的控制權,當實際表上有更新時它會失效(為了避免臟讀)所以我認為你的生產中不是那么頻繁更新的表。 如果是這種情況,您可以很好地考慮使用具有當前緩存失效服務/標准的應用程序級緩存。

如果您想從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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM