開啟 MySQL query cache,加快數據庫讀取速度
在網站建設或者運營中,如果 MySQL server 是非常繁忙,可以開啟 query cache 以加速回應時間,開啟方法可以在 my.cnf 裡面加入以下項目: (Redhat 下面是 /etc/my.cnf;Debian 是在 etc/mysql/my.cnf).
query_cache_size = 64M
query_cache_type = 1
query_cache_limit = 1048576
以上語法的設定裡面,query_cache_size 是分配 256MB 記憶體空間給 query cache;query_cache_type 設定成 1,是給所有的查詢做 cache;query_cache_limit 是指定個別的查詢語句 1KB 的記憶體空間。
這些數值可根據自己的需要作出更改,設定及存檔後,重新啟動 MySQL 即可。
Query Cache 在提高數據庫性能方面具有非常重要的作用。
其設定也非常簡單,僅需要在配置文件寫入兩行: query_cache_type 和 query_cache _size,而且 MySQL 的 query cache 非常快!而且一旦命中,就直接發送給客戶端,節約大量的 CPU 時間。
當然,非 SELECT 語句對緩衝是有影響的,它們可能使緩衝中的數據過期。一個 UPDATE 語句引起的部分表修改,將導致對該表所有的緩衝數據失效,這是 MySQL 為了平衡性能而沒有採取的措施。因為,如果每次 UPDATE 需要檢查修改的數據,然後撤出部分緩衝將導致代碼的複雜度增加。
query_cache_type 0 代表不使用緩衝, 1 代表使用緩衝,2 代表根據需要使用。
其實MySQL中有內存表了, 完全可以不用這個功能. 對於Query Cache, MySQL提供了query_cache_type變量來控制發送到數據庫的SQL是否進行Cache, 有三個值:
0, 對SQL語句不進行Cache.
1, 對於有SQL_NO_CACHE提示的SQL不進行Cache.
2, 僅對於有SQL_CACHE進示的SQL進行Cache.