文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (美國信紙) - 40.0MB
PDF (A4) - 40.1MB
手冊頁 (TGZ) - 258.2KB
手冊頁 (Zip) - 365.3KB
資訊 (Gzip) - 4.0MB
資訊 (Zip) - 4.0MB


MySQL 9.0 參考手冊  /  ...  /  ddl_rewriter 外掛程式

7.6.5 ddl_rewriter 外掛程式

MySQL 9.0 包含 ddl_rewriter 外掛程式,該外掛程式會修改伺服器接收到的 CREATE TABLE 陳述式,然後才會剖析並執行它們。此外掛程式會移除 ENCRYPTIONDATA DIRECTORYINDEX DIRECTORY 子句,這在從加密資料庫或將表格儲存在資料目錄外部的資料庫所建立的 SQL 傾印檔案中還原表格時可能很有用。例如,此外掛程式可以將此類傾印檔案還原到未加密的執行個體,或還原到無法存取資料目錄外部路徑的環境中。

在使用 ddl_rewriter 外掛程式之前,請依照第 7.6.5.1 節「安裝或解除安裝 ddl_rewriter」中提供的指示安裝它。

ddl_rewriter 會檢查伺服器接收到的 SQL 陳述式,然後才會剖析它們,並根據以下條件重寫它們

  • ddl_rewriter 只考慮 CREATE TABLE 陳述式,而且只有在它們是獨立陳述式時才考慮,這些陳述式發生在輸入行的開頭或準備好的陳述式文字的開頭。ddl_rewriter 不考慮儲存程式定義中的 CREATE TABLE 陳述式。陳述式可以跨越多行。

  • 在考慮重寫的陳述式中,以下子句的執行個體會被重寫,並且每個執行個體都會被單一空格取代

    • ENCRYPTION

    • DATA DIRECTORY (在表格和分割區層級)

    • INDEX DIRECTORY (在表格和分割區層級)

  • 重寫不取決於字母大小寫。

如果 ddl_rewriter 重寫陳述式,則會產生警告

mysql> CREATE TABLE t (i INT) DATA DIRECTORY '/var/mysql/data';
Query OK, 0 rows affected, 1 warning (0.03 sec)

mysql> SHOW WARNINGS\G
*************************** 1. row ***************************
  Level: Note
   Code: 1105
Message: Query 'CREATE TABLE t (i INT) DATA DIRECTORY '/var/mysql/data''
         rewritten to 'CREATE TABLE t (i INT) ' by a query rewrite plugin
1 row in set (0.00 sec)

如果啟用了一般查詢日誌或二進位日誌,則伺服器會將經過 ddl_rewriter 重寫後的陳述式寫入其中。

安裝時,ddl_rewriter 會公開 Performance Schema memory/rewriter/ddl_rewriter 工具,以追蹤外掛程式的記憶體使用量。請參閱第 29.12.20.10 節「記憶體摘要表格」