簡體   English   中英

MySQL查詢緩存工作

[英]MySQL query caching working

我想了解MySQL查詢緩存的工作方式。 我已經檢查過這個API

這些方案將如何工作?

情況1

select * from my_table where column = 'Myvalue';

情況二

select * from my_table where column = 'test';

情況3

select * from my_table where column = 'Myvalue';

因此,當執行情況3時,我想知道結果是從緩存中獲取還是從數據庫中獲取。 有人可以解釋嗎? 因為他們在手冊中提到了這一點

查詢必須完全相同(逐字節),才能被視為相同。

由於查詢1和3相同,因此只要第一個查詢的結果仍在查詢緩存中,並且查詢之間的表沒有更新,則第三個查詢將由緩存提供服務,而不是命中該表。

默認情況下,查詢緩存處於關閉狀態。 query_cache_size設置為字節大小以啟用查詢緩存。 以1024字節的倍數設置。 該文件說:

通常,數十兆字節的大小是有益的。

另請注意以下有關查詢緩存操作的信息

在MySQL 5.1.17之前,准備好的語句不使用查詢緩存。 從5.1.17開始,已准備好的語句在某些條件下使用查詢緩存,具體情況取決於准備方法。

如果表發生更改,則所有使用該表的緩存查詢都將變為無效,並從緩存中刪除。

請注意,根據查詢緩存,以下兩個查詢雖然返回相同的結果集,但它們並不相同:

select * from my_table where column = 'Myvalue';

SELECT * FROM my_table WHERE column = 'Myvalue';

暫無
暫無

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

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