最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL緩存的查詢和清除命令使用詳解

 更新時間:2015年12月07日 09:59:23   作者:OrangeHolic  
這篇文章主要介紹了MySQL緩存的查詢和清除命令使用詳解,對于一些不常改變數(shù)據(jù)且有大量相同sql查詢的表,查詢緩存會顯得比較有用一些,需要的朋友可以參考下

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

query_cache_size=10M 
query_cache_type=1 

可以用如下命令查看是否開啟,其中have_query_cache為是否開啟,query_cache_limit 指定單個查詢能夠使用的緩沖區(qū)大小,缺省為1M;query_cache_min_res_unit為系統(tǒng)分配的最小緩存塊大小,默認(rèn)是4KB,設(shè)置值大對大數(shù)據(jù)查詢有好處,但如果你的查詢都是小數(shù)據(jù) 查詢,就容易造成內(nèi)存碎片和浪費;query_cache_size和query_cache_type就是上面我們的配置;query_cache_wlock_invalidate表示當(dāng)有其他客戶端正在對MyISAM表進(jìn)行寫操作時,如果查詢在query cache中,是否返回cache結(jié)果還是等寫操作完成再讀表獲取結(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.測試
我們先執(zhí)行一次,select  count(*) from wei ;然后再執(zhí)行一次,可以看出第二次用的時間遠(yuǎn)遠(yuǎn)低于第一次的執(zhí)行,因為第二次從緩存中讀取了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) 

我們可以通過如下命令查看現(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) 

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

  • Qcache_free_blocks:緩存中相鄰內(nèi)存塊的個數(shù)。數(shù)目大說明可能有碎片。FLUSH QUERY CACHE會對緩存中的碎片進(jìn)行整理,從而得到一個空閑塊。
  • Qcache_free_memory:緩存中的空閑內(nèi)存。
  • Qcache_hits:每次查詢在緩存中命中時就增大
  • Qcache_inserts:每次插入一個查詢時就增大。命中次數(shù)除以插入次數(shù)就是不中比率。
  • Qcache_lowmem_prunes:緩存出現(xiàn)內(nèi)存不足并且必須要進(jìn)行清理以便為更多查詢提供空間的次數(shù)。這個數(shù)字最好長時間來看;如果這個 數(shù)字在不斷增長,就表示可能碎片非常嚴(yán)重,或者內(nèi)存很少。(上面的 free_blocks和free_memory可以告訴您屬于哪種情況)
  • Qcache_not_cached:不適合進(jìn)行緩存的查詢的數(shù)量,通常是由于這些查詢不是 SELECT 語句或者用了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       這個用的最多,經(jīng)常碰見。主要是用來清空主機緩存表。如果你的某些主機改變IP數(shù)字,或如果你得到錯誤消息Host ... isblocked,你應(yīng)該清空主機表。當(dāng)在連接MySQL服務(wù)器時,對一臺給定的主機有多于 max_connect_errors個錯誤連續(xù)不斷地發(fā)生,MySQL為了安全的需要將會阻止該主機進(jìn)一步的連接請求。清空主機表允許主機再嘗試連接。
  • LOGS        關(guān)閉當(dāng)前的二進(jìn)制日志文件并創(chuàng)建一個新文件,新的二進(jìn)制日志文件的名字在當(dāng)前的二進(jìn)制文件的編號上加1。
  • PRIVILEGES  這個也是經(jīng)常使用的,每當(dāng)重新賦權(quán)后,為了以防萬一,讓新權(quán)限立即生效,一般都執(zhí)行一把,目地是從數(shù)據(jù)庫授權(quán)表中重新裝載權(quán)限到緩存中。
  • TABLES       關(guān)閉所有打開的表,同時該操作將會清空查詢緩存中的內(nèi)容。
  • FLUSH TABLES WITH READ LOCK   關(guān)閉所有打開的表,同時對于所有數(shù)據(jù)庫中的表都加一個讀鎖,直到顯示地執(zhí)行unlock tables,該操作常常用于數(shù)據(jù)備份的時候。
  • STATUS       重置大多數(shù)狀態(tài)變量到0。
  • MASTER        刪除所有的二進(jìn)制日志索引文件中的二進(jìn)制日志文件,重置二進(jìn)制日志文件的索引文件為空,創(chuàng)建一個新的二進(jìn)制日志文件,不過這個已經(jīng)不推薦使用,改成reset master 了??梢韵胂?,以前自己是多土啊,本來一條簡單的命令就可以搞定的,卻要好幾條命令來,以前的做法是先查出來當(dāng)前的二進(jìn)制日志文件名,再用purge 操作。
  • QUERY CACHE   重整查詢緩存,消除其中的碎片,提高性能,但是并不影響查詢緩存中現(xiàn)有的數(shù)據(jù),這點和Flush table 和Reset Query  Cache(將會清空查詢緩存的內(nèi)容)不一樣的。
  • SLAVE        類似于重置復(fù)制吧,讓從數(shù)據(jù)庫忘記主數(shù)據(jù)庫的復(fù)制位置,同時也會刪除已經(jīng)下載下來的relay log,與Master一樣,已經(jīng)不推薦使用,改成Reset Slave了。這個也很有用的。

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

相關(guān)文章

  • 磁盤寫滿導(dǎo)致MySQL復(fù)制失敗的解決方案

    磁盤寫滿導(dǎo)致MySQL復(fù)制失敗的解決方案

    這篇文章主要介紹了磁盤寫滿導(dǎo)致MySQL復(fù)制失敗的解決方案,幫助大家更好的理解和學(xué)習(xí)使用MySQL,感興趣的朋友可以了解下
    2021-04-04
  • Linux虛擬機下mysql 5.7安裝配置方法圖文教程

    Linux虛擬機下mysql 5.7安裝配置方法圖文教程

    這篇文章主要為大家詳細(xì)介紹了Linux虛擬機下mysql 5.7安裝配置方法圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • MySQLMerge存儲引擎

    MySQLMerge存儲引擎

    MERGE存儲引擎把一組MyISAM數(shù)據(jù)表當(dāng)做一個邏輯單元來對待,讓我們可以同時對他們進(jìn)行查詢。本文給大家介紹MySQLMerge存儲引擎,需要的朋友參考下吧
    2016-03-03
  • MYSQL 5.6 從庫復(fù)制的部署和監(jiān)控的實現(xiàn)

    MYSQL 5.6 從庫復(fù)制的部署和監(jiān)控的實現(xiàn)

    這篇文章主要介紹了MYSQL 5.6 從庫復(fù)制的部署和監(jiān)控的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • windows下MySQL5.6版本安裝及配置過程附有截圖和詳細(xì)說明

    windows下MySQL5.6版本安裝及配置過程附有截圖和詳細(xì)說明

    這篇文章主要介紹了windows下MySQL5.6版本安裝及配置過程附有截圖和詳細(xì)說明,需要的朋友可以參考下
    2013-06-06
  • 使用YUM在Linux(CentOS 7)下安裝mysql 5.7.18的教程詳解

    使用YUM在Linux(CentOS 7)下安裝mysql 5.7.18的教程詳解

    這篇文章主要介紹了使用YUM在Linux(CentOS 7)下安裝mysql 5.7.18的教程詳解,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-05-05
  • MySQL數(shù)據(jù)庫的shell腳本自動備份

    MySQL數(shù)據(jù)庫的shell腳本自動備份

    這篇文章主要介紹了MySQL數(shù)據(jù)庫的shell腳本自動備份的相關(guān)資料,網(wǎng)站或應(yīng)用的后臺都有備份數(shù)據(jù)庫的功能按鈕,但需要去手工執(zhí)行。我們需要一種安全的,每天自動備份的方法需要的朋友可以參考下
    2017-03-03
  • MySQL使用xtrabackup進(jìn)行備份還原操作

    MySQL使用xtrabackup進(jìn)行備份還原操作

    這篇文章主要為大家詳細(xì)介紹了MySQL如何使用xtrabackup進(jìn)行備份還原操作,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • 一文解答什么是MySQL的回表

    一文解答什么是MySQL的回表

    這篇文章主要介紹了一文解答什么是MySQL的回表,回表就是?MySQL要先查詢到主鍵索引,然后再用主鍵索引定位到數(shù)據(jù),文章圍繞主題展開詳細(xì)的內(nèi)容介紹,需要的朋友可以參考一下
    2022-08-08
  • 解析mysql 5.5字符集問題

    解析mysql 5.5字符集問題

    本篇文章是對關(guān)于mysql 5.5字符集的問題進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06

最新評論

河东区| 开鲁县| 积石山| 遵义市| 霍城县| 栾城县| 新安县| 仁怀市| 石城县| 肃宁县| 平远县| 清水河县| 马鞍山市| 泗洪县| 肃宁县| 瓦房店市| 开平市| 利川市| 彩票| 赤壁市| 和田市| 金昌市| 拜泉县| 阿坝县| 吐鲁番市| 葫芦岛市| 蕲春县| 望都县| 兴和县| 河池市| 武宣县| 漳平市| 谷城县| 嘉定区| 玉环县| 泗水县| 上杭县| 贵南县| 康乐县| 阿城市| 南丹县|