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...