數據庫的查詢緩存

MySQL 拿到一個查詢請求後,會先到查詢緩存看看,之前是不是執行過這條語句。之前執行過的語句及其結果可能會以 key-value 對的形式,被直接緩存在內存中。key 是查詢 的語句,value 是查詢的結果。如果你的查詢能夠直接在這個緩存中找到 key,那麼這個 value 就會被直接返回給客戶端。 如果語句不在查詢緩存中,就會繼續後面的執行階段。執行完成後,執行結果會被存入查
詢緩存中。你可以看到,如果查詢命中緩存,MySQL 不需要執行後面的複雜操作,就可 以直接返回結果,這個效率會很高。
 
 
但是大多數情況下我會建議你不要使用查詢緩存,爲什麼呢?因爲查詢緩存往往弊大於 利。
 
查詢緩存的失效非常頻繁,只要有對一個表的更新,這個表上所有的查詢緩存都會被清 空。因此很可能你費勁地把結果存起來,還沒使用呢,就被一個更新全清空了。對於更新壓力大的數據庫來說,查詢緩存的命中率會非常低。除非你的業務就是有一張靜態表,很長時間纔會更新一次。比如,一個系統配置表,那這張表上的查詢才適合使用查詢緩存。
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章