12

ローカル開発サーバーに非常に大きなMySQLテーブルがあります。800万行を超えるデータです。LOADDATAINFILEを使用してテーブルを正常にロードしました。

このデータをエクスポートして、リモートホストにインポートしたいと思います。

リモートホストにLOADDATALOCALINFILEを試してみました。ただし、約15分後、リモートホストへの接続は失敗します。唯一の解決策は、データをいくつかの小さなファイルにエクスポートすることだと思います。

私が自由に使えるツールは、PhpMyAdmin、HeidiSQL、MySQLWorkbenchです。

単一のファイルとしてエクスポートする方法は知っていますが、複数のファイルとしてエクスポートすることはできません。これどうやってするの?

4

7 に答える 7

19

5,000 万レコードの (パーティション化された) テーブルのインポート/エクスポートを行ったところ、かなり高速なマシンからエクスポートするのに 2 分、低速のデスクトップにインポートするのに 15 分しかかかりませんでした。ファイルを分割する必要はありませんでした。

mysqldump はあなたの味方です。たくさんのデータがあることを知っているので、圧縮したほうがよいでしょう。

 @host1:~ $ mysqldump -u <username> -p <database> <table> | gzip > output.sql.gz
 @host1:~ $ scp output.sql.gz host2:~/
 @host1:~ $ rm output.sql.gz
 @host1:~ $ ssh host2
 @host2:~ $ gunzip < output.sql.gz | mysql -u <username> -p <database>
 @host2:~ $ rm output.sql.gz
于 2013-05-30T09:33:47.550 に答える
6

mysqldumpを見てください。

あなたの行は(ターミナルから):

mysql の db_name から backupfile.sql にエクスポートします。

mysqldump -u user -p db_name > backupfile.sql

mysql の backupfile から db_name にインポートします。

mysql -u user -p db_name < backupfile.sql

情報を分割するには、次の 2 つのオプションがあります。

  1. 出力テキスト ファイルを小さなファイルに分割します (必要な数、これを行うための多くのツール、たとえばsplit )。
  2. 次のように、db_name の後にテーブル名を追加するオプションを使用して、毎回 1 つのテーブルをエクスポートします。

    mysqldump -u user -p db_name table_name > backupfile_table_name.sql

ファイル (テキスト ファイル) の圧縮は非常に効率的であり、元のサイズの約 20% ~ 30% に最小化できます。

ファイルをリモート サーバーにコピーするにはscp (セキュア コピー) を使用し、対話には ssh (通常) を使用する必要があります。

幸運を。

于 2012-10-28T20:34:31.300 に答える
3

phpMyAdmin の高度なオプションを使用すると、エクスポートする行数と開始点を選択できることがわかりました。これにより、テーブルをリモート ホストに取得するために必要な数のダンプ ファイルを作成できます。

php.ini 設定を調整する必要がありました。また、ダンプ ファイルの生成には時間がかかるため (それぞれ 500,000 行)、phpMyAdmin 構成の 'ExecTimeLimit' 設定を調整する必要がありました。

インポートには HeidiSQL を使用します。

于 2012-10-29T00:33:10.130 に答える
2

単一のテーブルに対する mysqldump アプローチの例として

mysqldump -u root -ppassword yourdb yourtable > table_name.sql

インポートは次のように簡単です

mysql -u username -ppassword yourotherdb < table_name.sql
于 2012-10-28T20:36:47.280 に答える
1

mysqldumpコマンド ライン ツールの使用に慣れていない場合は、FTP 経由でサーバーにアップロードできる必要がありますが、その問題を解決するのに役立つ 2 つの GUI ツールを次に示します。

Adminerはスリムで非常に効率的な DB マネージャー ツールで、少なくとも PHPMyAdmin と同じくらい強力で、サーバーにアップロードする必要がある単一のファイルが 1 つしかないため、インストールが非常に簡単です。PMA よりも大きなテーブルや DB でうまく機能します。

MySQLDumperは、大規模なテーブル/DB をエクスポート/インポートするために特別に開発されたツールであるため、説明した状況で問題はありません。唯一の欠点は、より多くのファイルとフォルダー (~1.5MB で~350 ファイル) があるため、インストールが少し面倒なことですが、FTP 経由でアップロードすることも問題ではなく、間違いなく取得されます。仕事が終わった:)

したがって、私のアドバイスは、最初に Adminer を試して、それでも失敗する場合は MySQLDumper ルートに進むことです。

于 2014-03-12T11:48:17.917 に答える
1

mysqldumpテーブルをファイルにダンプするために使用します。次にtarwith-zオプションを使用してファイルを圧縮します。リモート サーバーに転送します (ftpまたはsftpその他のファイル転送ユーティリティを使用)。次に、リモート サーバーでファイルを untar しmysqlます。ファイルのインポートに使用します。

元のファイルを分割したり、複数のファイルにエクスポートしたりする必要はありません。

于 2012-10-28T20:43:59.403 に答える