文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (美式信紙) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 參考手冊  /  ...  /  MyISAM 啟動選項

18.2.1 MyISAM 啟動選項

下列 mysqld 的選項可用於變更 MyISAM 資料表的行為。如需其他資訊,請參閱第 7.1.7 節, 「伺服器命令選項」

表 18.3 MyISAM 選項和變數參考

名稱 命令列 選項檔案 系統變數 狀態變數 變數範圍 動態
bulk_insert_buffer_size 兩者
concurrent_insert 全域
delay_key_write 全域
have_rtree_keys 全域
key_buffer_size 全域
log-isam
myisam-block-size
myisam_data_pointer_size 全域
myisam_max_sort_file_size 全域
myisam_mmap_size 全域
myisam_recover_options 全域
myisam_sort_buffer_size 兩者
myisam_stats_method 兩者
myisam_use_mmap 全域
tmp_table_size 兩者

下列系統變數會影響 MyISAM 資料表的行為。如需其他資訊,請參閱第 7.1.8 節, 「伺服器系統變數」

  • bulk_insert_buffer_size

    用於大量插入最佳化的樹狀快取大小。

    注意

    這是每個執行緒的限制!

  • delay_key_write=ALL

    不要在寫入任何 MyISAM 資料表之間清除索引鍵緩衝區。

    注意

    如果您這樣做,當資料表正在使用中時,您不應該從其他程式(例如從另一個 MySQL 伺服器或使用 myisamchk)存取 MyISAM 資料表。這樣做有索引損毀的風險。使用 --external-locking 無法消除此風險。

  • myisam_max_sort_file_size

    MySQL 在重新建立 MyISAM 索引時(在 REPAIR TABLEALTER TABLELOAD DATA 期間),允許使用的暫存檔最大大小。如果檔案大小會大於此值,則會改用索引鍵快取建立索引,速度會比較慢。此值以位元組為單位。

  • myisam_recover_options=模式

    設定損毀 MyISAM 資料表的自動復原模式。

  • myisam_sort_buffer_size

    設定復原資料表時使用的緩衝區大小。

如果您啟動 mysqld 並設定 myisam_recover_options 系統變數,就會啟用自動復原。在此情況下,當伺服器開啟 MyISAM 資料表時,它會檢查資料表是否標記為損毀,或者資料表的開啟計數變數是否不為 0,並且您是在停用外部鎖定的情況下執行伺服器。如果上述任一條件成立,就會發生下列情況

  • 伺服器會檢查資料表是否有錯誤。

  • 如果伺服器發現錯誤,它會嘗試快速修復資料表(使用排序,不重新建立資料檔)。

  • 如果由於資料檔中的錯誤(例如,重複索引鍵錯誤)而導致修復失敗,伺服器會再次嘗試,這次會重新建立資料檔。

  • 如果修復仍然失敗,伺服器會再次使用舊的修復選項方法(逐列寫入,不排序)。此方法應該能夠修復任何類型的錯誤,而且磁碟空間需求較低。

如果復原無法從先前完成的陳述式復原所有列,而且您未在 myisam_recover_options 系統變數的值中指定 FORCE,則自動修復會中止,並在錯誤日誌中顯示錯誤訊息

Error: Couldn't repair table: test.g00pages

如果您指定 FORCE,則會改為寫入像這樣的警告

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

如果自動復原值包含 BACKUP,復原程序會建立名稱格式為 資料表名稱-日期時間.BAK 的檔案。您應該有一個 cron 指令碼,可自動將這些檔案從資料庫目錄移至備份媒體。