- 論壇徽章:
- 3
|
Flush語句,用于清除或重新加載各種高速緩存、表或者獲取鎖等。執(zhí)行flush語句必須要有reload權(quán)限。
語法:
FLUSH [NO_WRITE_TO_BINLOG | LOCAL]
flush_option [, flush_option] ...
執(zhí)行flush命令會(huì)默認(rèn)寫入二進(jìn)制日志,以便能夠把該操作的狀態(tài)同步到Slave,如果不想寫入二進(jìn)制日志,則加上NO_WRITE_TO_BINLOG或其別名LOCAL參數(shù)。
注:FLUSH LOGS、FLUSH TABLES WITH READ LOCK (with or without a table list)、FLUSH TABLES tbl_name ... FOR EXPORT在任何情況下都不會(huì)寫入到二進(jìn)制日志,因?yàn)槿绻@些命令同步到Slave可能會(huì)導(dǎo)致一些問題。
flush_option:
DES_KEY_FILE:重新加載下次MySQL啟動(dòng)時(shí)的DES加密值。
HOSTS:清空主機(jī)名緩存。如果某個(gè)主機(jī)名IP地址換了或者出現(xiàn)以下錯(cuò)誤信息
Host 'host_name' is blocked
就要執(zhí)行flush hosts;命令來清空主機(jī)緩存。
如果一個(gè)連接請(qǐng)求的次數(shù)超過 max_connect_errors參數(shù)所指定的值,那么MySQL就會(huì)禁止該連接,執(zhí)行flush hosts;命令來清空主機(jī)緩存即可。max_connect_errors默認(rèn)的值是10.
[log_type] LOGS:
如果不指定log_type,則flush logs;默認(rèn)關(guān)閉并重新加載二進(jìn)制日志,生成一個(gè)新的二進(jìn)制文件,并在原來的二進(jìn)制日志名字編號(hào)的基礎(chǔ)上加1,來重新命名新的二進(jìn)制文件。
如果不指定logs_type參數(shù),則默認(rèn)關(guān)閉并重載所有日志,log_type參數(shù):
BINARY:關(guān)閉并重新打開二進(jìn)制日志文件;
ENGINE:關(guān)閉并重新打開任何可以刷新的有關(guān)存儲(chǔ)引擎的日志。flush engine;命令會(huì)使InnoDB把日志寫入磁盤;
ERROR:關(guān)閉并重新打開錯(cuò)誤日志;
GENERAL:關(guān)閉并重新打開通用查詢?nèi)罩荆?br />
RELAY:關(guān)閉并重新打開relay log;
SLOW:關(guān)閉并重新打開慢查詢?nèi)罩尽?br />
注:
在MySQL 5.1以前刷新日志的話,如果定義了log-error參數(shù),則會(huì)把現(xiàn)有的錯(cuò)誤日志關(guān)閉并創(chuàng)建一個(gè)新的錯(cuò)誤日志,就的以.old結(jié)尾命名。
log_type選項(xiàng)是在MySQL 5.5.3才有的。
PRIVILEGES:刷新mysql庫的權(quán)限表(users表)。
QUERY CACHE:整理查詢緩存以便更好的記憶它,flush query cache;不會(huì)清空查詢緩存,只有flush tables或者reset query cahche;命令才會(huì)清空緩存。
STATUS:把當(dāng)前會(huì)話的參數(shù)值增加為全局參數(shù),并把當(dāng)前會(huì)話的參數(shù)值置為0。一些全局參數(shù)也可能會(huì)被置為0。也會(huì)把鍵緩存計(jì)數(shù)器置為0并把max_used_connections的值置為當(dāng)前打開的連接數(shù)的值。這個(gè)參數(shù)只有在調(diào)試SQL語句的時(shí)候用。
TABLES:刷新表,后面跟的參數(shù)待討論...
USER_RESOURCES:把所有的用戶一小時(shí)允許的資源值置為0。這個(gè)命令給所有達(dá)到各自會(huì)話資源上限的會(huì)話重新分配資源。 FLUSH USER_RESOURCES這個(gè)命令不會(huì)刷新最大連接上限數(shù)。
flush tables|table命令會(huì)關(guān)閉所有的表,并清空所有查詢緩存。reset query cache也是清空緩存的。在MySQL 5.6,如果有一張表被加了讀鎖(lock tables ... read),則不能使用flush tables命令,只能使用flush tables table_name ... with read lock;
flush tables table_name [,table_name] ...
關(guān)閉指定的表并清空指定表的緩存,如果該表不存在不會(huì)報(bào)錯(cuò)。
FLUSH TABLES WITH READ LOCK
FLUSH TABLES tbl_name [, tbl_name] ... WITH READ LOCK
FLUSH TABLES tbl_name [, tbl_name] ... FOR EXPORT
While any of these statements is in effect within the session, attempts to use FLUSH TABLES ... FOR EXPORT produce an error:
FLUSH TABLES ... WITH READ LOCK
FLUSH TABLES ... FOR EXPORT
LOCK TABLES ... READ
LOCK TABLES ... WRITE
While FLUSH TABLES ... FOR EXPORT is in effect within the session, attempts to use any of these statements produce an error:
FLUSH TABLES WITH READ LOCK
FLUSH TABLES ... WITH READ LOCK
FLUSH TABLES ... FOR EXPORT
更多精彩MySQL學(xué)習(xí)資源,盡在我贏職場(chǎng)!
api.png (8.52 KB, 下載次數(shù): 131)
下載附件
2015-06-15 14:11 上傳
|
|