0

mysqlデータベースをバックアップするために2つの異なる方法を使用します。--all-databasesを使用したmysqldumpは、すべてのデータベースを1つのファイルにダンプするループよりもはるかに高速でパフォーマンスがはるかに優れています。なんで?そして、ループバージョンのパフォーマンスを高速化する方法

ここに画像の説明を入力してください

/usr/bin/mysqldump --single-transaction --all-databases  | gzip > /backup/all_databases.sql.gz

そして、このループは65のデータベースを超えています。

nice -n 19 mysqldump --defaults-extra-file="/etc/mysql/conf.d/mysqldump.cnf" --databases -c xxx -q > /backup/mysql/xxx_08.sql
nice -n 19 mysqldump --defaults-extra-file="/etc/mysql/conf.d/mysqldump.cnf" --databases -c dj-xxx -q > /backup/mysql/dj-xxx_08.sql
nice -n 19 mysqldump --defaults-extra-file="/etc/mysql/conf.d/mysqldump.cnf" --databases -c dj-xxx-p -q > /backup/mysql/dj-xxx-p_08.sql
nice -n 19 mysqldump --defaults-extra-file="/etc/mysql/conf.d/mysqldump.cnf" --databases -c dj-foo -q > /backup/mysql/dj-foo_08.sql

mysqldump.cnfは認証にのみ使用され、追加のオプションはありません。

4

1 に答える 1

2

多くの違いがあります。

  1. Aでは、ディスクに書き込む前にデータを圧縮するgzipに書き込んでいます。Bは、5〜10倍大きくなる可能性のあるプレーンSQLファイルを書き込みます(私のデータベースからの結果)。パフォーマンスがディスクバウンドの場合、これが解決策になる可能性があります

  2. -c="完全挿入"はAで指定されていません

  3. -qはAで指定されていません

  4. 大規模なデータベースINFORMATION_SCHEMAの場合、クエリはmysqlで問題になる可能性があります(実行してみてくださいSELECT * FROM information_schema.columns。Bの場合、すべてのダンプがこれらのクエリを実行する必要がありますが、Aはこれを1回だけ実行する必要があります。

于 2012-07-04T09:07:20.923 に答える