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


MySQL 8.4 參考手冊  /  其他儲存引擎  /  設定儲存引擎

18.1 設定儲存引擎

當您建立新的表格時,您可以透過在 CREATE TABLE 陳述式中加入 ENGINE 表格選項來指定要使用的儲存引擎。

-- ENGINE=INNODB not needed unless you have set a different
-- default storage engine.
CREATE TABLE t1 (i INT) ENGINE = INNODB;
-- Simple table definitions can be switched from one to another.
CREATE TABLE t2 (i INT) ENGINE = CSV;
CREATE TABLE t3 (i INT) ENGINE = MEMORY;

當您省略 ENGINE 選項時,將使用預設的儲存引擎。在 MySQL 8.4 中,預設引擎是 InnoDB。您可以使用 --default-storage-engine 伺服器啟動選項,或在 my.cnf 設定檔中設定 default-storage-engine 選項來指定預設引擎。

您可以透過設定 default_storage_engine 變數,來設定目前工作階段的預設儲存引擎。

SET default_storage_engine=NDBCLUSTER;

使用 CREATE TEMPORARY TABLE 建立的 TEMPORARY 表格的儲存引擎,可以透過設定 default_tmp_storage_engine 來與永久表格的引擎分開設定,無論是在啟動時或執行時。

若要將表格從一個儲存引擎轉換為另一個儲存引擎,請使用指示新引擎的 ALTER TABLE 陳述式。

ALTER TABLE t ENGINE = InnoDB;

請參閱 第 15.1.20 節,「CREATE TABLE 陳述式」第 15.1.9 節,「ALTER TABLE 陳述式」

如果您嘗試使用未編譯到或已編譯但已停用的儲存引擎,MySQL 會改為使用預設的儲存引擎建立表格。例如,在複寫設定中,您的來源伺服器可能會使用 InnoDB 表格以獲得最大的安全性,但複寫伺服器可能會使用其他儲存引擎來換取速度,但犧牲耐用性或並行性。

預設情況下,每當 CREATE TABLEALTER TABLE 無法使用預設的儲存引擎時,都會產生警告。若要防止在所需的引擎無法使用時發生混亂、非預期的行為,請啟用 NO_ENGINE_SUBSTITUTION SQL 模式。如果所需的引擎無法使用,此設定會產生錯誤而不是警告,並且不會建立或變更表格。請參閱 第 7.1.11 節,「伺服器 SQL 模式」

MySQL 可能會根據儲存引擎,將表格的索引和資料儲存在一個或多個其他檔案中。表格和欄的定義儲存在 MySQL 資料字典中。個別的儲存引擎會建立管理表格所需的任何其他檔案。如果表格名稱包含特殊字元,則表格檔案的名稱會包含這些字元的編碼版本,如 第 11.2.4 節,「將識別碼對應至檔案名稱」 中所述。