MySQL查詢緩存

查詢緩存的使用

執行查詢語句的時候,會先查詢緩存。不過,MySQL 8.0 版本後移除,由於這個功能不太實用sql

  my.cnf加入如下配置,重啓MySQL開啓查詢緩存數據庫

query_cache_type=1 query_cache_size=600000

  MySQL執行如下命令也能夠開啓查詢緩存緩存

set global  query_cache_type=1; set global  query_cache_size=600000;
  如上,開啓查詢緩存後在一樣的查詢條件以及數據狀況下,會直接在緩存中返回結果。這裏的查詢條件包括查詢自己、當前要查詢的數據庫、客戶端協議版本號等一些可能影響結果的信息。所以任何兩個查詢在任何字符上的不一樣都會致使緩存不命中。此外,若是查詢中包含任何用戶自定義函數、存儲函數、用戶變量、臨時表、MySQL庫中的系統表,其查詢結果也不會被緩存。

緩存創建以後,MySQL的查詢緩存系統會跟蹤查詢中涉及的每張表,若是這些表(數據或結構)發生變化,那麼和這張表相關的全部緩存數據都將失效。函數

  緩存雖然可以提高數據庫的查詢性能,可是緩存同時也帶來了額外的開銷,每次查詢後都要作一次緩存操做,失效後還要銷燬。 所以,開啓緩存查詢要謹慎,尤爲對於寫密集的應用來講更是如此。若是開啓,要注意合理控制緩存空間大小,通常來講其大小設置爲幾十MB比較合適。此外,還能夠經過sql_cache和sql_no_cache來控制某個查詢語句是否須要緩存:性能

select sql_no_cache count(*) from usr;
相關文章
相關標籤/搜索