mysql 5.6 缓存_为什么默认情况下从MySQL 5.6开始禁用query_cache_type?
您需要InnoDB的歷史才能理解原因.它來了:
戰(zhàn)爭故事
InnoDB和查詢緩存處于不斷的戰(zhàn)爭狀態(tài).在檢查InnoDB緩沖池中的更改然后交叉檢查查詢緩存以進行相同更改時,InnoDB往往非常苛刻.
和平條約
在MySQL 5.0之前,InnoDB禁用了查詢緩存.現(xiàn)在,InnoDB與它進行交互.為了簡化問題,您可以通過將query_cache_size設(shè)置為0來禁用查詢緩存.
If the server is started with 07002 set to 0, it does not acquire the query cache mutex at all, which means that the query cache cannot be enabled at runtime and there is reduced overhead in query execution.
轉(zhuǎn)移條款
將query_cache_size設(shè)置為0并非一刀切的解決方案.
首先,戰(zhàn)爭的原因是開銷. InnoDB將始終檢查更改.更大的查詢緩存將使InnoDB更加困難.禁用查詢緩存讓InnoDB和Query Cache感到高興.但是,即使有這樣的和平條約,你(開發(fā)人員/ DBA)也可能成為這場戰(zhàn)爭的犧牲品.
取決于以下內(nèi)容
>工作量
>變化的頻率
>讀取相同數(shù)據(jù)的頻率
你應(yīng)該將query_cache_size設(shè)置為你認為提高性能的任何數(shù)字(這相當(dāng)于開始地下運動).
結(jié)語
如果你想知道我在哪里提出這個戰(zhàn)爭故事,請看我的舊帖子
我建議之前禁用查詢緩存
注意:我意識到問題是關(guān)于query_cache_type.它確實對查詢緩存有影響.禁用緩存會壓制InnoDB對它的支配地位.手動設(shè)置query_cache_type只會強制Developer / DBA仔細考慮查詢緩存將遇到的查詢類型.
總結(jié)
以上是生活随笔為你收集整理的mysql 5.6 缓存_为什么默认情况下从MySQL 5.6开始禁用query_cache_type?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mybatis mysql 分表_Myb
- 下一篇: linux cmake编译源码,linu