一、查詢緩存的誤區(qū)
剛接觸QC時,覺得是個好東西,可以將查詢的結(jié)果放到QC中,這樣極大的提升查詢的速度,但是后來了解到如果對表進行做DML或者DDL,QC相對應(yīng)的緩存就會釋放,這樣對于頻繁更改的數(shù)據(jù)庫是沒有任何意義的。
二、查詢緩存場景
每次執(zhí)行select結(jié)果,會放到查詢緩存中,這樣下次在執(zhí)行的時候,就不需要具體的執(zhí)行sql,只要訪問查詢訪問中的緩存即可。
適合的場景:
1、select
2、訪問大量的數(shù)據(jù)才有必要緩存其結(jié)果
3、返回少量數(shù)據(jù)
大量的分組、聚合、計算
查詢緩存才不至于變得非常大
對于普通的交易系統(tǒng)來說,這個查詢 意義不大,都是一些簡單的sql,甚至于還有副作用。
執(zhí)行一次成本很高,結(jié)果集又很小,這種sql值得被緩存。
三、查詢緩存的配置
1、將query_cache_type,這是靜態(tài)參數(shù),需要重啟數(shù)據(jù)庫。
0是關(guān)閉查詢緩存
1打開查詢緩存,緩存所有的sql語句的結(jié)果,除非select sql_no_cache 提示,表示這個結(jié)果不放在緩存里面。
2打開查詢緩存,但是只是緩存select sql_cache 對應(yīng)的結(jié)果集。 比較推薦使用
2、query_cache_size調(diào)整查詢緩存的大小
四、查詢緩存演示
開啟查詢緩存,MySQL中的select就會放到查詢緩存中,無論什么操作,第一次放到QC中,再次執(zhí)行的時候就會直接到QC中查詢,這樣Qcache_hits 就會加一,但是如果對該表做DML或者DDL,本來放到QC中的緩存就會被釋放。
成都創(chuàng)新互聯(lián)致力于互聯(lián)網(wǎng)網(wǎng)站建設(shè)與網(wǎng)站營銷,提供成都網(wǎng)站設(shè)計、成都做網(wǎng)站、網(wǎng)站開發(fā)、seo優(yōu)化、網(wǎng)站排名、互聯(lián)網(wǎng)營銷、小程序制作、公眾號商城、等建站開發(fā),成都創(chuàng)新互聯(lián)網(wǎng)站建設(shè)策劃專家,為不同類型的客戶提供良好的互聯(lián)網(wǎng)應(yīng)用定制解決方案,幫助客戶在新的全球化互聯(lián)網(wǎng)環(huán)境中保持優(yōu)勢。
1、沒有任何操作
| Qcache_hits | 0 |
| Qcache_not_cached | 2 |
| Qcache_queries_in_cache | 0 |
2、執(zhí)行
select * from t1 where id=1;
| Qcache_hits | 0 |
| Qcache_not_cached | 2 |
| Qcache_queries_in_cache | 1 |
select * from t1 where id=1;
| Qcache_hits | 1 |
| Qcache_not_cached | 2 |
| Qcache_queries_in_cache | 1 |
insert into t1 values(4,'dfd');
| Qcache_hits | 1 |
| Qcache_not_cached | 2 |
| Qcache_queries_in_cache | 0 |
select * from t1 where id=1;
| Qcache_hits | 1 |
| Qcache_not_cached | 2 |
| Qcache_queries_in_cache | 1 |
select * from t1 where id=1;
| Qcache_hits | 2 |
| Qcache_not_cached | 2 |
| Qcache_queries_in_cache | 1 |
mysql> reset query cache;
Query OK, 0 rows affected (0.00 sec)
| Qcache_hits | 2 |
| Qcache_inserts | 2 |
| Qcache_queries_in_cache | 0 |
五、查詢緩存中的參數(shù)
| Qcache_free_blocks | 1 | #指的是空閑塊數(shù),指的是系統(tǒng)分配給MySQL進程的緩存總大小空間中還沒有使用的空間
| Qcache_free_memory | 20953960 | #空閑空間,指的是還沒有被操作系統(tǒng)分配出去的內(nèi)存空間。
| Qcache_hits | 12 | #指的是命中次數(shù)
| Qcache_inserts | 3 | #向緩存空間中插入的緩存的次數(shù)
| Qcache_lowmem_prunes | 0 | #內(nèi)存太小,修剪內(nèi)存的次數(shù)
| Qcache_not_cached | 0 | #指沒有命中的次數(shù)
| Qcache_queries_in_cache | 0 | #緩存的個數(shù)
| Qcache_total_blocks | 1 | #總塊數(shù),指的是系統(tǒng)分配給MySQL進程的緩存總大小空間
flush query_cache #碎片整理
reset query_cache #清空緩存
當(dāng)前名稱:MySQL之查詢緩存
轉(zhuǎn)載源于:http://aaarwkj.com/article0/pegooo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、定制開發(fā)、App開發(fā)、網(wǎng)站收錄、搜索引擎優(yōu)化、關(guān)鍵詞優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)