0

今日、テストを実行しました。ソース ファイルが 10K レコードの空である innodb テーブルでの挿入パフォーマンスのバリアントを確認します。

「 mysql -uuname -pxxxxxx -Ddbanme < insert_file.sql 」を使用しました

ここに出てきたさまざまな統計があります。

    BINARY LOGGING IS ENABLED
    innodb_flush_log_trx_commit = 1     Time: 25 minutes
    innodb_flush_log_trx_commit = 2     Time: 4 seconds

    BINARY LOGGING IS DISABLED
    innodb_flush_log_trx_commit = 1     Time: 6 minutes
    innodb_flush_log_trx_commit = 2     Time: 3 seconds

これから何を理解すればよいかわかりません。このテストの詳細について、ご意見をお聞かせください。

4

1 に答える 1

2

ここを見ると、MySQLinnodb_flush_log_trx_commitがより頻繁にログをフラッシュするように 1 回書き込むことがわかります。ドキュメントでわかるように、ACID 準拠を達成するには 1 にする必要があります。あなたの場合、ファイルからデータをインポートするときに、値が 1 で何かが壊れると、トランザクション全体が失敗します (テーブルは空のままになります)。値が 2 の場合、何かが壊れると、テーブルには成功したレコードが含まれます (インポート前)。失敗した)。

に関してBINARY LOGGINGは、バイナリログがない場合、挿入はより高速に動作します。スレーブ サーバーがなく、マスター サーバーからコマンドをレプリケートしたくない場合は、バイナリ ログは必要ありません。オフにするとパフォーマンスが向上します。

于 2012-04-04T13:19:58.073 に答える