我想優化資料庫,必須看到優化后的效果。那就是測驗查詢了,查詢過一次后,會有快取,再查就很快了。
select SQL_NO_CACHE `Id`, `Name`, `Age`, `Address` from student where ....
我加了SQL_NO_CACHE好像也無效。
比如我加了SQL_NO_CACHE 查詢一次,要20幾秒,第二次就會飛快,0.幾秒
網上找了一圈,有加 NOW()的,有加 (SELECT @a:=NULL) as init,但都無效 ,第二次查詢就是會很快。
這是怎么回事呢?我想測驗不快取,真實的檢索速度
uj5u.com熱心網友回復:
第一種方案:關閉快取關閉快取有兩種放法,一種臨時的,一種永久的。
臨時的直接再命令列執行
set global query_cache_size=0
set global query_cache_type=0
永久的修改組態檔my.cnf ,添加下面的配置即可。注意改完要重啟資料庫,然后再進去看看
query_cache_type=0
query_cache_size=0
第二種方案:使用SQL 陳述句
再開啟快取的情況下我們對sql陳述句做一些改動
Select sql_no_cache count(*) from users; 不快取
Select sql_cache count(*) from users; 快取(也可以不加,默認快取已經開啟了)
uj5u.com熱心網友回復:
這些方式都沒用,第二次、第三次查詢都是秒查,無法測驗優化效果
uj5u.com熱心網友回復:
Mysql 版本是多少?uj5u.com熱心網友回復:
5.7 的,mysql 好像確實是這樣,在stackworkflow 上面也有不少人問這個,說什么是會有各種快取,OS的快取什么的。無法每次查詢以一個"空狀態" 去獲取資料
說 SQL_NO_CACHE 的目的是為了防止大結果集占用快取空間
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/16701.html
標籤:MySQL
