mysql query cache 會快取select 查詢,安裝時預設是開啟的,但是如果對錶進行insert, update, delete, truncate, alter table, drop table, or drop database等操作時,之前的快取會無效並且刪除。這樣一定程度上也會影響我們資料庫的效能。所以對一些頻繁的變動表的情況開啟快取是不明智的。還有一種情況我們測試資料庫效能的時候也要關閉快取,避免快取對我們測試資料的影響。下面介紹兩種不使用快取的方案:
第一種:方案
首先檢視資料庫的快取是開啟的
檢視快取命中情況
然後對錶查詢了兩次,可以看到,第二次明顯的快取了資料。然後檢視命中快取變為了1
下面就開始關閉快取。關閉快取有兩種放法,一種臨時的,一種永久的。
臨時的直接再命令列執行
set global query_cache_size=0
set global query_cache_type=0
永久的修改配置檔案my.cnf ,新增下面的配置即可。
query_cache_type=0
query_cache_size=0
我們用永久的修改方法
注意改完要重啟資料庫,然後再進去看看
然後開始查詢 很明顯沒有命中快取。
第二種方案:
再開啟快取的情況下我們對sql語句做一些改動
select sql_no_cache count(*) from users; 不快取
select sql_cache count(*) from users; 快取(也可以不加,預設快取已經開啟了)
首先檢視資料庫快取開啟中
快取命中為0
然後開始查詢,查詢兩次後發現快取命中率依然為0,很明顯沒有查詢快取。
然後不加sql_no_cache 查詢,很明顯快取命中為1,開始查詢快取了
MySQL關閉查詢快取(QC)的兩種方法
mysql query cache 會快取select 查詢,安裝時預設是開啟的,但是如果對錶進行insert,update,delete,truncate,alter table,drop table,or drop database等操作時,之前的快取會無效並且刪除。這樣一定程度上也會影響我們資...
mysql資料快取查詢 Mysql查詢快取
查詢快取 mysql提供了一種快取型別,會快取整個select查詢結果。mysql查詢快取儲存查詢返回的完整結果。當查詢命中該快取,mysql會立即返回結果,跳過了解析 優化和執行階段。以下兩種情況不能被快取 頻繁更新 修改的的表,所有快取資料都會失效,mysql查詢快取會跟蹤查詢中涉及的表,如果這...
mysql 查詢快取
show variables like cache my.cnf設定 mysql慢日誌 mysql有乙個功能就是可以log下來執行的比較慢的sql語句,預設是沒有這個log的,為了開啟這個功能,要修改my.cnf或者在mysql啟動的時候加入一些引數。如果在my.cnf裡面修改,需增加如下幾行 lo...