今天仔細看了下Flush語法,同時在工做中也常常使用Flush命令,在這兒彙總下。MySQL的FLUSH句法(清除或者從新加載內部緩存) FLUSH flush_option [,flush_option],若是你想要清除一些MySQL使用內部緩存,你應該使用FLUSH命令。爲了執行FLUSH,你必須有reload權限。html
flush_option 能夠是下列任何東西:數據庫
HOSTS 這個用的最多,常常遇見。主要是用來清空主機緩存表。若是你的某些主機改變IP數字,或若是你獲得錯誤消息Host ... isblocked,你應該清空主機表。當在鏈接MySQL服務器時,對一臺給定的主機有多於 max_connect_errors個錯誤接二連三地發生,MySQL爲了安全的須要將會阻止該主機進一步的鏈接請求。清空主機表容許主機再嘗試鏈接。緩存
LOGS 關閉當前的二進制日誌文件並建立一個新文件,新的二進制日誌文件的名字在當前的二進制文件的編號上加1。
PRIVILEGES 這個也是常常使用的,每當從新賦權後,爲了以防萬一,讓新權限當即生效,通常都執行一把,目地是從數據庫受權表中從新裝載權限到緩存中。
TABLES 關閉全部打開的表,同時該操做將會清空查詢緩存中的內容。安全
FLUSH TABLES WITH READ LOCK 關閉全部打開的表,同時對於全部數據庫中的表都加一個讀鎖,直到顯示地執行unlock tables,該操做經常用於數據備份的時候。
STATUS 重置大多數狀態變量到0。服務器
MASTER 刪除全部的二進制日誌索引文件中的二進制日誌文件,重置二進制日誌文件的索引文件爲空,建立一個新的二進制日誌文件,不過這個已經不推薦使用,改爲reset master 了。能夠想象,之前本身是多土啊,原本一條簡單的命令就能夠搞定的,卻要好幾條命令來,之前的作法是先查出來當前的二進制日誌文件名,再用purge 操做。ide
QUERY CACHE 重整查詢緩存,消除其中的碎片,提升性能,可是並不影響查詢緩存中現有的數據,這點和Flush table 和Reset Query Cache(將會清空查詢緩存的內容)不同的。性能
SLAVE 相似於重置複製吧,讓從數據庫忘記主數據庫的複製位置,同時也會刪除已經下載下來的relay log,與Master同樣,已經不推薦使用,改爲Reset Slave了。這個也頗有用的。spa
通常來說,Flush操做都會記錄在二進制日誌文件中,可是FLUSH LOGS、FLUSH MASTER、FLUSH SLAVE、FLUSH TABLES WITH READ LOCK不會記錄,所以上述操做若是記錄在二進制日誌文件中話,會對從數據庫形成影響。注意:Reset操做其實扮演的是一個Flush操做的加強版的角色。日誌
【原文地址:http://www.cnblogs.com/zfying/archive/2011/11/30/2268835.html】htm