


MySQL參數DELAY_KEY_WRITE的詳解
MySQL參數DELAY_KEY_WRITE的相關知識是本文我們主要要介紹的內容,DELAY_KEY_WRITE是指在表關閉之前,將對表的update操作指跟新數據到磁盤,而不更新索引到磁盤,把對索引的更改記錄在內存。這樣MyISAM表可以使索引更新更快。在關閉表的時候一起更新索引到磁盤。
使用:create table的時候,指定DELAY_KEY_WRITE。
當表已經存在的時候:ALTER TABLE table_name DELAY_KEY_WRITE= 1。
適用范圍:表有update操作,這個參數的優勢會很好的體現出來。因為這個參數能延遲更新索引到表關閉。當我們需要經常跟新一個大表的時候,可以考慮使用這個參數。
說明:表關閉會在什么時候發生?你可以理解成當flash table的時候,表將關閉。那么有2種情況將會發生flush table:
當cache 滿了一個新的thread試圖打開一個表的時候,那個表沒有在cache;
當cache里的表數比table_cache多時thread不在使用表;
這個2種情況將會flush table。
當然,你也可以直接設置啟動參數flush_time ,設置每多少時間flush table一次。
需要注意的是:當DELAY_KEY_WRITE使用的時候,如果出現重啟或者掉電等情況,會導致在cache的索引update沒來得及更新,所以必須在啟動參數加上 --myisam-recover,這樣在你啟動mysql的時候會檢查你的表并同步表和索引.或者在重啟服務器之前運行myisamchk。(然而,即使在這種情況下,應通過使用DELAY_KEY_WRITE保證不丟失數據,因為關鍵字信息總是可以從數據行產生)。如果你使用該特性,你應用--myisam-recover選項啟動服務器,為所有MyISAM表添加自動檢查。
關鍵字:MySQL、參數、DELAY_KEY_WRITE
新文章:
- CentOS7下圖形配置網絡的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統后丟失windows啟動項
- CentOS單網卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網打印機IP講解
- CentOS7使用hostapd實現無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網絡重啟出錯
- 解決Centos7雙系統后丟失windows啟動項
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統有什么不同呢
- Centos 6.6默認iptable規則詳解