程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> MYSQL參數 DELAY_KEY_WRITE說明

MYSQL參數 DELAY_KEY_WRITE說明

編輯:關於MYSQL數據庫

 這個參數只對MyISAM引擎表有作用。

  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表添加自動檢查。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved