Query cache(高速查詢緩衝池)

2021-07-10 08:12:18 字數 922 閱讀 6034

mysql

高速查詢快取池(簡稱qc)

將select

語句和查詢結果放在緩衝區中,若有同樣的

select

語句(區分大小寫),將直接從緩衝區中讀取結果;

show global status like

「qcache_%」檢視

qc可以知道

qc設定時候合理; 如果

qcache_lowmem_prunes

的值非常大,則表明經常出現緩衝不夠的情況; 如果

qache_hits

的值非常大,則表明查詢緩衝使用非常頻繁,此時需要增加緩衝大小; 如果

qcache_hits

的值不大則表明查詢重複率低,這種情況下使用查詢緩衝反而會影響效率,那麼可以考慮不用查詢緩衝; 在

select

語句中加入

sql_no_cache

可以明確表示不使用查詢緩衝; 例如

selectsql_no_cache * from xx where yy;

query_cache_limit=2m

不緩衝超過

2m的查詢結果;

query_cache_min_res_unit=512k

,設定每個

qc單元大小,提高

qc利用率(

qcache_queries_in_cache

不大,但

qcache_free_memory

較大,就需要減少

qcache_queries_in_cache。

建議:query_cache

:有全域性的鎖,查詢結果有變更,表變更sql更新都要更新查詢快取,鎖的粒度大 建議關閉查詢快取

關閉查詢快取2個引數:

query_cache_type=0

query_cache_size=0

查詢快取 query cache

mysql 把能夠快取的完整結果集快取起來。如果查詢語句包含任何不確定值的函式,得到的結果集是不確定的或者結果集大小超過了query cache limit限制,是不會被快取的。mysql是判斷不出乙個sql能否被快取的,只能判斷查詢快取是否有相同的sql和產生的結果集到底是否能被快取起來。在解析s...

高速查詢hive資料倉儲表中的總條數

author kwu 高速查詢hive資料倉儲中的條數。在查詢hive表的條數,通常使用count 可是資料量大的時候,mr跑count 往往須要幾分鐘的時間。1 傳統方式獲得總條數例如以下 執行時間為91.208s 2 與關係庫一樣hive表也能夠通過查詢元資料來得到總條數 select d.na...

快速查詢演算法

在日常的演算法中,查詢是乙個經常涉及到的話題,而如何提高查詢的速度,也是很多程式設計師 軟體研究的話題。先看乙個例子。有這樣乙個資料型別s 學生姓名 name 性別 年齡 age 現在假設有這樣乙個需求 檔案a b中分別存放大量s 的記錄,需要將a b中重複的記錄去掉。我們用c 來演示今天的話題 t...