溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL之查詢緩存

發(fā)布時間:2020-08-02 15:17:22 來源:網絡 閱讀:495 作者:鯨魚新 欄目:MySQL數據庫

一、查詢緩存的誤區(qū)
剛接觸QC時,覺得是個好東西,可以將查詢的結果放到QC中,這樣極大的提升查詢的速度,但是后來了解到如果對表進行做DML或者DDL,QC相對應的緩存就會釋放,這樣對于頻繁更改的數據庫是沒有任何意義的。
二、查詢緩存場景
每次執(zhí)行select結果,會放到查詢緩存中,這樣下次在執(zhí)行的時候,就不需要具體的執(zhí)行sql,只要訪問查詢訪問中的緩存即可。
適合的場景:
1、select
2、訪問大量的數據才有必要緩存其結果
3、返回少量數據
大量的分組、聚合、計算
查詢緩存才不至于變得非常大
對于普通的交易系統(tǒng)來說,這個查詢 意義不大,都是一些簡單的sql,甚至于還有副作用。
執(zhí)行一次成本很高,結果集又很小,這種sql值得被緩存。
三、查詢緩存的配置
1、將query_cache_type,這是靜態(tài)參數,需要重啟數據庫。
0是關閉查詢緩存
1打開查詢緩存,緩存所有的sql語句的結果,除非select sql_no_cache 提示,表示這個結果不放在緩存里面。
2打開查詢緩存,但是只是緩存select sql_cache 對應的結果集。 比較推薦使用
2、query_cache_size調整查詢緩存的大小
四、查詢緩存演示
開啟查詢緩存,MySQL中的select就會放到查詢緩存中,無論什么操作,第一次放到QC中,再次執(zhí)行的時候就會直接到QC中查詢,這樣Qcache_hits 就會加一,但是如果對該表做DML或者DDL,本來放到QC中的緩存就會被釋放。

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 |

五、查詢緩存中的參數
| Qcache_free_blocks | 1 | #指的是空閑塊數,指的是系統(tǒng)分配給MySQL進程的緩存總大小空間中還沒有使用的空間
| Qcache_free_memory | 20953960 | #空閑空間,指的是還沒有被操作系統(tǒng)分配出去的內存空間。
| Qcache_hits | 12 | #指的是命中次數
| Qcache_inserts | 3 | #向緩存空間中插入的緩存的次數
| Qcache_lowmem_prunes | 0 | #內存太小,修剪內存的次數
| Qcache_not_cached | 0 | #指沒有命中的次數
| Qcache_queries_in_cache | 0 | #緩存的個數
| Qcache_total_blocks | 1 | #總塊數,指的是系統(tǒng)分配給MySQL進程的緩存總大小空間

flush query_cache #碎片整理
reset query_cache #清空緩存

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

qc
AI