Mysql大量データクイックエクスポート


mysqldump -u root -p -q -e -t  webgps4 dn_location2 > dn_location2.sql 
mysqldump -u root -p -q -e -t --single-transaction  webgps4 dn_location2 > dn_location2.sql
source dn_location2.sql

以上はエクスポートデータをインポートする文で、この方法で15分で1.6億件のレコードをエクスポートし、エクスポートしたファイルの平均7070件のレコードを1つのinsert文につづり、sourceで一括挿入し、1.6億件のデータをインポートするのに5時間近くかかります.平均速度:3200 W本/h.その後、--single-transactionパラメータを追加しようとしたが、結果はあまり影響しなかった.また、エクスポート時に-wパラメータを増やしてエクスポートデータをフィルタリングすることを示すと、インポートエクスポートの速度はほぼ変わらず、フィルタリングされたデータ量が大きいほど時間が遅くなるだけである.ここでは、パラメータについて説明します.
-quick、-qこのオプションは、すべてのレコードを取得してメモリにキャッシュするのではなく、mysqldumpにサーバクエリからレコードを直接出力するように強制する大きなテーブルをエクスポートするときに役立ちます.
--extended-insert、-eは複数のVALuES列を持つINSERT構文を使用します.これにより、エクスポートファイルが小さくなり、インポート時の速度が速くなります.デフォルトはオンです.--skip-extended-insertを使用してオプションをキャンセルします.
--single-transaction
このオプションは、データをエクスポートする前にBEGIN SQL文を発行します.BEGINはアプリケーションをブロックせず、エクスポート時のデータベースの一貫性を保証します.複数バージョンのストレージエンジンのみに適用され、InnoDBのみに適用されます.このオプションと--lock-tablesオプションは、LOCK TABLESが保留中のトランザクションのコミットを隠すため、反発します.大きなテーブルをエクスポートするには、--quickオプションを組み合わせて使用します.この例では速度を速める役割は果たしていませんmysqldump-uroot-p--host=localhost--all-databases--single-transaction
-tテーブルデータのみエクスポートし、テーブル構造はエクスポートしません