六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

分享MySQL緩存的查詢與清除命令案例代碼

[摘要]這篇文章主要介紹了MySQL緩存的查詢和清除命令使用詳解,對(duì)于一些不常改變數(shù)據(jù)且有大量相同sql查詢的表,查詢緩存會(huì)顯得比較有用一些,需要的朋友可以參考下Mysql 查詢緩存 查詢緩存的作用就是當(dāng)查詢接收到一個(gè)和之前同樣的查詢,服務(wù)器將會(huì)從查詢緩存種檢索結(jié)果,而不是再次分析和執(zhí)行上次的查詢。這樣就...
這篇文章主要介紹了MySQL緩存的查詢和清除命令使用詳解,對(duì)于一些不常改變數(shù)據(jù)且有大量相同sql查詢的表,查詢緩存會(huì)顯得比較有用一些,需要的朋友可以參考下

Mysql 查詢緩存
查詢緩存的作用就是當(dāng)查詢接收到一個(gè)和之前同樣的查詢,服務(wù)器將會(huì)從查詢緩存種檢索結(jié)果,而不是再次分析和執(zhí)行上次的查詢。這樣就大大提高了性能,節(jié)省時(shí)間。
1.配置查詢緩存
修改配置文件,修改[mysqld]下的query_cache_size和query_cache_type(如果沒(méi)有則添加)。其中query_cache_size表示緩存的大小,而query_cache_type有3個(gè)值,表示緩存那種類 型的select結(jié)果集,query_cache_type各個(gè)值如下:
0或off關(guān)閉緩存
1或on開(kāi)啟緩存,但是不保存使用sql_no_cache的select語(yǔ)句,如不緩存select sql_no_cache name from wei where id=2
2或demand開(kāi)啟有條件緩存,只緩存帶sql_cache的select語(yǔ)句,緩存select sql_cache name from wei where id=4
例子的配置為下,配置完成重啟Mysql服務(wù)器即可。


query_cache_size=10M 
query_cache_type=1

可以用如下命令查看是否開(kāi)啟,其中have_query_cache為是否開(kāi)啟,query_cache_limit 指定單個(gè)查詢能夠使用的緩沖區(qū)大小,缺省為1M;query_cache_min_res_unit為系統(tǒng)分配的最小緩存塊大小,默認(rèn)是4KB,設(shè)置值大對(duì)大數(shù)據(jù)查詢有好處,但如果你的查詢都是小數(shù)據(jù) 查詢,就容易造成內(nèi)存碎片和浪費(fèi);query_cache_size和query_cache_type就是上面我們的配置;query_cache_wlock_invalidate表示當(dāng)有其他客戶端正在對(duì)MyISAM表進(jìn)行寫(xiě)操作時(shí),如果查詢?cè)趒uery cache中,是否返回cache結(jié)果還是等寫(xiě)操作完成再讀表獲取結(jié)果。


mysql> show variables like '%query_cache%'; 
+------------------------------+----------+ 
  Variable_name          Value    
+------------------------------+----------+ 
  have_query_cache         YES     
  query_cache_limit        1048576   
  query_cache_min_res_unit     4096     
  query_cache_size         10485760   
  query_cache_type         ON      
  query_cache_wlock_invalidate   OFF     
+------------------------------+----------+ 
6 rows in set (0.00 sec)

2.測(cè)試
我們先執(zhí)行一次,select count(*) from wei ;然后再執(zhí)行一次,可以看出第二次用的時(shí)間遠(yuǎn)遠(yuǎn)低于第一次的執(zhí)行,因?yàn)榈诙螐木彺嬷凶x取了select結(jié)果。


mysql> select count(*) from wei ; 
+----------+ 
  count(*)   
+----------+ 
  4194304   
+----------+ 
1 row in set (3.92 sec) 
mysql> select count(*) from wei ; 
+----------+ 
  count(*)   
+----------+ 
  4194304   
+----------+ 
1 row in set (0.00 sec)

我們可以通過(guò)如下命令查看現(xiàn)在緩存的情況


mysql> show status like 'qcache%'; 
+-------------------------+----------+ 
  Variable_name        Value    
+-------------------------+----------+ 
  Qcache_free_blocks     1      
  Qcache_free_memory     10475424   
  Qcache_hits         1      
  Qcache_inserts       1      
  Qcache_lowmem_prunes    0      
  Qcache_not_cached      0      
  Qcache_queries_in_cache   1      
  Qcache_total_blocks     4      
+-------------------------+----------+ 
8 rows in set (0.00 sec)

其中各個(gè)參數(shù)的意義如下:

  • Qcache_free_blocks:緩存中相鄰內(nèi)存塊的個(gè)數(shù)。數(shù)目大說(shuō)明可能有碎片。FLUSH QUERY CACHE會(huì)對(duì)緩存中的碎片進(jìn)行整理,從而得到一個(gè)空閑塊。

  • Qcache_free_memory:緩存中的空閑內(nèi)存。

  • Qcache_hits:每次查詢?cè)诰彺嬷忻袝r(shí)就增大

  • Qcache_inserts:每次插入一個(gè)查詢時(shí)就增大。命中次數(shù)除以插入次數(shù)就是不中比率。

  • Qcache_lowmem_prunes:緩存出現(xiàn)內(nèi)存不足并且必須要進(jìn)行清理以便為更多查詢提供空間的次數(shù)。這個(gè)數(shù)字最好長(zhǎng)時(shí)間來(lái)看;如果這個(gè) 數(shù)字在不斷增長(zhǎng),就表示可能碎片非常嚴(yán)重,或者內(nèi)存很少。(上面的 free_blocks和free_memory可以告訴您屬于哪種情況)

  • Qcache_not_cached:不適合進(jìn)行緩存的查詢的數(shù)量,通常是由于這些查詢不是 SELECT 語(yǔ)句或者用了now()之類的函數(shù)。

  • Qcache_queries_in_cache:當(dāng)前緩存的查詢(和響應(yīng))的數(shù)量。

  • Qcache_total_blocks:緩存中塊的數(shù)量。


清除緩存
mysql的FLUSH句法(清除緩存)


FLUSH flush_option [,flush_option]

如果你想要清除一些MySQL使用內(nèi)部緩存,你應(yīng)該使用FLUSH命令。為了執(zhí)行FLUSH,你必須有reload權(quán)限。
flush_option可以是下列任何東西:

  • HOSTS 這個(gè)用的最多,經(jīng)常碰見(jiàn)。主要是用來(lái)清空主機(jī)緩存表。如果你的某些主機(jī)改變IP數(shù)字,或如果你得到錯(cuò)誤消息Host ... isblocked,你應(yīng)該清空主機(jī)表。當(dāng)在連接MySQL服務(wù)器時(shí),對(duì)一臺(tái)給定的主機(jī)有多于 max_connect_errors個(gè)錯(cuò)誤連續(xù)不斷地發(fā)生,MySQL為了安全的需要將會(huì)阻止該主機(jī)進(jìn)一步的連接請(qǐng)求。清空主機(jī)表允許主機(jī)再嘗試連接。

  • LOGS 關(guān)閉當(dāng)前的二進(jìn)制日志文件并創(chuàng)建一個(gè)新文件,新的二進(jìn)制日志文件的名字在當(dāng)前的二進(jìn)制文件的編號(hào)上加1。

  • PRIVILEGES 這個(gè)也是經(jīng)常使用的,每當(dāng)重新賦權(quán)后,為了以防萬(wàn)一,讓新權(quán)限立即生效,一般都執(zhí)行一把,目地是從數(shù)據(jù)庫(kù)授權(quán)表中重新裝載權(quán)限到緩存中。

  • TABLES 關(guān)閉所有打開(kāi)的表,同時(shí)該操作將會(huì)清空查詢緩存中的內(nèi)容。

  • FLUSH TABLES WITH READ LOCK 關(guān)閉所有打開(kāi)的表,同時(shí)對(duì)于所有數(shù)據(jù)庫(kù)中的表都加一個(gè)讀鎖,直到顯示地執(zhí)行unlock tables,該操作常常用于數(shù)據(jù)備份的時(shí)候。

  • STATUS 重置大多數(shù)狀態(tài)變量到0。

  • MASTER 刪除所有的二進(jìn)制日志索引文件中的二進(jìn)制日志文件,重置二進(jìn)制日志文件的索引文件為空,創(chuàng)建一個(gè)新的二進(jìn)制日志文件,不過(guò)這個(gè)已經(jīng)不推薦使用,改成reset master 了。可以想象,以前自己是多土啊,本來(lái)一條簡(jiǎn)單的命令就可以搞定的,卻要好幾條命令來(lái),以前的做法是先查出來(lái)當(dāng)前的二進(jìn)制日志文件名,再用purge 操作。

  • QUERY CACHE 重整查詢緩存,消除其中的碎片,提高性能,但是并不影響查詢緩存中現(xiàn)有的數(shù)據(jù),這點(diǎn)和Flush table 和Reset Query Cache(將會(huì)清空查詢緩存的內(nèi)容)不一樣的。

  • SLAVE 類似于重置復(fù)制吧,讓從數(shù)據(jù)庫(kù)忘記主數(shù)據(jù)庫(kù)的復(fù)制位置,同時(shí)也會(huì)刪除已經(jīng)下載下來(lái)的relay log,與Master一樣,已經(jīng)不推薦使用,改成Reset Slave了。這個(gè)也很有用的。

一般來(lái)講,F(xiàn)lush操作都會(huì)記錄在二進(jìn)制日志文件中,但是FLUSH LOGS、FLUSH MASTER、FLUSH SLAVE、FLUSH TABLES WITH READ LOCK不會(huì)記錄,因此上述操作如果記錄在二進(jìn)制日志文件中話,會(huì)對(duì)從數(shù)據(jù)庫(kù)造成影響。注意:Reset操作其實(shí)扮演的是一個(gè)Flush操作的增強(qiáng)版的角色。

以上就是分享MySQL緩存的查詢和清除命令實(shí)例代碼的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!


學(xué)習(xí)教程快速掌握從入門(mén)到精通的SQL知識(shí)。




主站蜘蛛池模板: 偷操 | 天天怕夜夜怕狠狠怕 | 天天草夜夜 | 亚洲va久久久噜噜噜久久狠狠 | 亚洲一区二区三区在线免费观看 | 色狠狠一区 | 深夜福利日韩 | 欧美一区二区激情三区 | 日韩视频免费观看 | 中文字幕在线视频精品 | 日韩欧美伊人久久大香线蕉 | 秋霞操 | 日韩在线视频网址 | 天天曰天天 | 五月婷婷六月丁香激情 | 午夜精品一区 | 日韩毛片久久91 | 青青青在线视频免费观看 | 天天综合射 | 午夜在线观看网站 | 天天做天天爱天天爽综合区 | 四虎在线永久视频观看 | 羞羞色男人的天堂 | 日本免费乱理伦片在线观看2018 | 午夜久久精品 | 日韩欧美在线免费观看 | 日韩大片免费观看视频播放 | 日韩观看 | 在线a久青草视频在线观看g | 日本夜夜操| 中文字幕一二三四 | 欧美午夜性春猛xxxx | 日日夜夜综合 | 欧美在线视频导航 | 伊人影视在线观看日韩区 | 亚洲码和乱人伦中文一区 | 四虎2020| 四虎精品成人免费观看 | 丝袜美女啪啪 | 日韩在线观看网址 | 日韩在线视频在线观看 |