眾所周知,數(shù)據(jù)庫是用來存儲數(shù)據(jù)的。當然數(shù)據(jù)庫根據(jù)數(shù)據(jù)的需求不同分為很多類型。在眾多數(shù)據(jù)庫中,MySQL數(shù)據(jù)庫是我們比較常見的,也是應(yīng)用比較多的。但是很多新手MySQL數(shù)據(jù)庫使用者,對于MySQL數(shù)據(jù)庫的使用還有些迷糊,例如MySQL數(shù)據(jù)庫如何清空緩存?其實MySQL數(shù)據(jù)清空緩存的方式很簡單,詳細教程就在下文,想學(xué)習(xí)的,請繼續(xù)往下看。
MySQL數(shù)據(jù)庫如何清空緩存?
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)該清空主機表。當在連接MySQL服務(wù)器時,對一臺給定的主機有多于 max_connect_errors個錯誤連續(xù)不斷地發(fā)生,MySQL為了安全的需要將會阻止該主機進一步的連接請求。清空主機表允許主機再嘗試連接。
LOGS 關(guān)閉當前的二進制日志文件并創(chuàng)建一個新文件,新的二進制日志文件的名字在當前的二進制文件的編號上加1。
PRIVILEGES 這個也是經(jī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 刪除所有的二進制日志索引文件中的二進制日志文件,重置二進制日志文件的索引文件為空,創(chuàng)建一個新的二進制日志文件,不過這個已經(jīng)不推薦使用,改成reset master 了。可以想象,以前自己是多土啊,本來一條簡單的命令就可以搞定的,卻要好幾條命令來,以前的做法是先查出來當前的二進制日志文件名,再用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操作都會記錄在二進制日志文件中,但是FLUSH LOGS、FLUSH MASTER、FLUSH SLAVE、FLUSH TABLES WITH READ LOCK不會記錄,因此上述操作如果記錄在二進制日志文件中話,會對從數(shù)據(jù)庫造成影響。
注意:Reset操作其實扮演的是一個Flush操作的增強版的角色。
上述就是關(guān)于MySQL數(shù)據(jù)庫如何清空緩存的全部內(nèi)容介紹,想了解更多關(guān)于MySQL數(shù)據(jù)庫的信息,請繼續(xù)關(guān)注中培偉業(yè)。