程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> 細化解析:帶你快速了解MyISAM啟動選項

細化解析:帶你快速了解MyISAM啟動選項

編輯:關於MYSQL數據庫

下列對MySQLd 的選項可用來改變MyISAM表的行為:

·--myisam-recover=mode

設置為崩潰MyISAM表自動恢復的模式。

·--delay-key-write=ALL

對任何MyISAM表的寫操作之間不要刷新鍵緩沖區。

注釋:如果你要這麼做。當表在使用中之時,你應該不使用來自另一個程序的MyISAM表(比如從另一個MySQL服務器或用myisamchk)。這麼做會導致索引被破壞。

對使用--delay-key-write的表,使用--external-locking沒有幫助。

列系統變量影響MyISAM表的行為:

·bulk_insert_buffer_size

用在塊插入優化中的樹緩沖區的大小。注釋:這是一個per thread的限制。

·(OBSOLETE) myisam_max_extra_sort_file_size

這個參數已經不在MySQL中使用。

·myisam_max_sort_file_size

如果臨時文件會變得超過索引,不要使用快速排序索引方法來創建一個索引。注釋:這個參數以字節的形式給出。

·myisam_sort_buffer_size

設置恢復表之時使用的緩沖區的尺寸。

如果用--myisam-recover選項啟動MySQLd,自動恢復被激活。在這種情況下,當服務器打開一個MyISAM表之時,服務器會檢查是否表被標注為崩潰,或者表的打開計數變量是否不為0且你正用--skip-external-locking運行服務器。如果這些條件的任何一個為真,下列情況發生:

·表被查錯。

·如果服務器發現一個錯誤,它試著做快速表修復(排序且不重新創建數據文件)。

·如果修復因為數據文件中的一個錯誤而失敗(例如,一個重復鍵錯誤),服務器會再次嘗試修復,這一次重建數據文件。

· 如果修復仍然失敗,服務器用舊修復選項方法再重試一次修復(一行接一行地寫,不排序)。這個方法應該能修復任何類型的錯誤,並且需要很低的磁盤空間。

如果恢復不能夠從先前完成的語句裡恢復所有行,而且你不能在--myisam-recover選項值指定FORCE,自動修復會終止,並在錯誤日志裡寫一條錯誤信息:

Error: Couldn't repair table: test.g00pages

如果你指定FORCE,取而代之地,類似這樣的一個警告被給出:

Warning: Found 344 of 354 rows 
when repairing ./test/g00pages

注釋:如果自動恢復值包括BACKUP,恢復進程創建文件並用tbl_name-datetime.BAK形式取名。你應該有一個cron腳本,它自動把這些文件從數據庫目錄移到備份媒質上

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