文件首頁
MySQL 8.4 參考手冊
相關文件 下載本手冊
PDF (US Ltr) - 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 參考手冊  /  ...  /  將資料匯入 MySQL Cluster

25.6.9 將資料匯入 MySQL Cluster

在設定新的 NDB Cluster 執行個體時,通常需要從現有的 NDB Cluster、MySQL 執行個體或其他來源匯入資料。此資料最常以以下一或多種格式提供

從 SQL 檔案匯入資料時,通常不需要強制執行交易或外來索引鍵,暫時停用這些功能可以大大加快匯入程序。可以使用 mysql 用戶端完成,無論是從用戶端工作階段還是透過在命令列上叫用它。在 mysql 用戶端工作階段中,您可以使用下列 SQL 陳述式執行匯入

SET ndb_use_transactions=0;
SET foreign_key_checks=0;

source path/to/dumpfile;

SET ndb_use_transactions=1;
SET foreign_key_checks=1;

以此方式執行匯入時,在執行 mysql 用戶端的 source 命令之後,必須 再次啟用 ndb_use_transactionforeign_key_checks。否則,同一工作階段中稍後的陳述式也可能在未強制執行交易或外來索引鍵限制的情況下執行,這可能會導致資料不一致。

從系統 Shell 中,可以使用 mysql 用戶端搭配 --init-command 選項來匯入 SQL 檔案,同時停用交易和外來索引鍵的強制執行,如下所示

$> mysql --init-command='SET ndb_use_transactions=0; SET foreign_key_checks=0' < path/to/dumpfile

也可以將資料載入 InnoDB 表格中,然後使用 ALTER TABLE ... ENGINE NDB 將其轉換為使用 NDB 儲存引擎。您應該考慮到,尤其是對於許多表格而言,這可能需要執行許多此類操作;此外,如果使用了外來索引鍵,則必須仔細留意 ALTER TABLE 陳述式的順序,因為外來索引鍵無法在使用了不同 MySQL 儲存引擎的表格之間運作。

您應該知道,本節先前所述的方法並未針對非常大的資料集或大型交易進行最佳化。如果應用程式確實需要在正常操作過程中處理大型交易或許多並行交易,您可能需要增加 MaxNoOfConcurrentOperations 資料節點設定參數的值,這會保留更多記憶體,以便在交易協調器意外停止時,允許資料節點接管交易。

在 NDB Cluster 表格上執行大量 DELETEUPDATE 操作時,您可能也想要執行此動作。如果可能,請嘗試讓應用程式以區塊方式執行這些操作,例如,透過在這些陳述式中新增 LIMIT

如果資料匯入操作因任何原因而未成功完成,您應該準備好執行任何必要的清除,包括可能的一或多個 DROP TABLE 陳述式和/或 DROP DATABASE 陳述式。若未執行此動作,可能會讓資料庫處於不一致的狀態。