mysql基礎(chǔ)(五)查詢緩存

緩存的有缺點
    1、如果命中緩存,直接從緩存中返回,減少分析和執(zhí)行SQL語句的過程,提高查詢效率
    2、緩存會帶來額外的開銷,如果開啟緩存的代價大于不開啟緩存的代價則不建議開啟緩存

    
緩存的開銷
    1、讀查詢在開始之前會先檢查查詢緩存
    2、若某個讀查詢可以被緩存且未被緩存,那么當完成執(zhí)行后,MySQL會將其結(jié)果存入查詢緩存
    3、對寫操作也有影響,因為當寫入數(shù)據(jù)時,MySQL必須將對應表的所有緩存都設置失效,
    這在緩存內(nèi)存較大時將導致很大的系統(tǒng)消耗,所以緩存內(nèi)存并不是越大越好

    
mysql查詢緩存
    1、用于保存查詢語句返回的結(jié)果,命中時,MySQL會立即返回結(jié)果,省去解析、優(yōu)化和執(zhí)行等步驟
   2、MySQL保存結(jié)果于緩存中,對select語句做hash計算,計算的結(jié)果作為key,查詢結(jié)果作為value
  3、mysql查詢緩存對大小寫敏感,所以使用SQL時盡量使用同一種風格
    
  
不會被緩存的語句
  1、不確定的數(shù)據(jù),不會緩存,如now(),current_time()等
  2、若查詢SQL中包含用戶自定義函數(shù),存儲函數(shù),用戶變量,臨時表,mysql庫中系統(tǒng)表
  3、SQL中包含字段權(quán)限
  
  
與緩存相關(guān)的服務器變量
mysql> SHOW VARIABLES LIKE 'query%';		#查看和查詢緩存相關(guān)的系統(tǒng)變量
    query_cache_type: 是否打開緩存	
	OFF: 關(guān)閉    ON: 打開    DEMAND: 只有明確寫了SQL_CACHE的查詢才會寫入緩存
    query_cache_size: 緩存使用的總內(nèi)存空間大小,單位是字節(jié),這個值必須是1024的整數(shù)倍
    query_cache_min_res_unit: 分配的最小內(nèi)存塊大小,太大可能導致內(nèi)存碎片,太小可能導致頻繁請求內(nèi)存
    query_cache_limit: 能夠緩存的最大結(jié)果,如果超出這個大小則清處已經(jīng)緩存的數(shù)據(jù)
    query_cache_wlock_invalidate: 如果某個數(shù)據(jù)表被鎖住,是否仍然從緩存中返回數(shù)據(jù),OFF:表示可以返回



mysql> SHOW STATUS LIKE '%qcache%';		#查看緩存狀態(tài)
    Qcache_free_blocks		#緩存池中空閑塊的個數(shù)
    Qcache_free_memory		#緩存中空閑內(nèi)存量
    Qcache_hits			#緩存命中次數(shù)
    Qcache_inserts		#緩存寫入次數(shù)
    Qcache_lowmen_prunes	#因內(nèi)存不足刪除緩存次數(shù)
    Qcache_not_cached 		#查詢未被緩存次數(shù)
    Qcache_queries_in_cache 	#當前緩存中緩存的SQL數(shù)量
    Qcache_total_blocks 	#緩存的總內(nèi)存塊


是否使用緩存
    1. 通過緩存命中率判斷, 緩存命中率 = 緩存命中次數(shù) (Qcache_hits) / 查詢次數(shù) (Com_select)
    2. 通過緩存寫入率, 寫入率 = 緩存寫入次數(shù) (Qcache_inserts) / 查詢次數(shù) (Com_select)
    3. 通過 命中-寫入率 判斷, 比率 = 命中次數(shù) (Qcache_hits) / 寫入次數(shù) (Qcache_inserts)
	3:1則算是查詢緩存有效,而最好能夠達到10:1
	
    mysql> SHOW GLOBAL STATUS LIKE 'com_select';		#查看查詢次數(shù)

目前創(chuàng)新互聯(lián)公司已為1000+的企業(yè)提供了網(wǎng)站建設、域名、虛擬主機、網(wǎng)站托管維護、企業(yè)網(wǎng)站設計、廣水網(wǎng)站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

分析和配置查詢緩存

mysql基礎(chǔ)(五)查詢緩存

網(wǎng)站題目:mysql基礎(chǔ)(五)查詢緩存
文章網(wǎng)址:http://bm7419.com/article10/jjspgo.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供云服務器小程序開發(fā)、手機網(wǎng)站建設網(wǎng)站設計公司、App開發(fā)、企業(yè)建站

廣告

聲明:本網(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)

成都網(wǎng)頁設計公司