0

mysqldump を使用して、データベースとテーブルを別々のファイルにダンプできます。

私の質問は、mysqldump 内でこれらのテーブル ファイルを小さな部分に分割する方法はありますか?

1 つの 10 GB の .sql ファイルの代わりに、同じテーブルに対して 10 個の 1 GB の .sql ファイルを取得しますか?

4

2 に答える 2

1

MySQL Dump を使用してクエリからデータを取得できますが、データを特定のサイズのチャンクに分割する必要がある場合、これを管理するのは難しいといつも思っています。

1Gb ファイルが必要なので、テーブルを 1Gb セグメントに分割する方法を次に示します。

使用しましたINTO OUTFILEが、MySQL ダンプもこの段階で使用できます

SELECT * FROM table
ORDER BY adminid ASC
INTO OUTFILE 'c:/table.csv'
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY

Windows を使用している場合、これには適切な分割ユーティリティが実際に欠けているため、GNU Core Utilities バンドルhttp://gnuwin32.sourceforge.net/packages/coreutils.htmをお勧めします

splitインストール後、コマンドプロンプトから使用できます

cd C:\Program Files (x86)\GnuWin32\bin
split -C 1024m -d c:\table.csv c:\table.part_

Linux を使用している場合は、優れた分割ユーティリティに既にアクセスできます。

それらをエクスポートする場合、おそらくある時点でそれらを再度インポートする必要があります。mysqlimport はインポート先のテーブル名を見つけようとするため、行末の .part_ が重要です。テーブルを分割するために使用できますが、複数のファイルを同じデータベーステーブルにインポートできます。

これらは、次を使用してインポートできます

mysqlimport --local --compress --user=username --password=password --host=dbserver.host --fields-terminated-by=, --fields-optionally-enclosed-by="\"" --lines-terminated-by="\n" databasename c:\table.csv

--localそれ以外の場合、mysqlimport はリモート ホスト上のファイルを検索する必要があります。

--compress多くの帯域幅を節約するため、非常に重要です

于 2013-03-27T15:08:06.090 に答える