2016-11-11 52 views
0

シナリオ:ほとんどのMyISAMテーブルとなぜmysqldumpが大きくなっているのですか?

MySQLデータベース。 MySQLのファイルシステムの現在の体重:

80K ./casin_emails 
212K ./performance_schema 
371M ./casin_info 
32K ./percona 
572K ./casin 
1.1M ./mysql 
67G . 

あなたは書き込みの瞬間にmysqldumpをのまだ実行中のプロセスが14のファイルを書いているこの質問をスペースのほとんどはibdataファイルから来

17956960 67G -rw-rw---- 1 mysql mysql 67G Nov 11 11:45 ibdata1 
17956940 5.0M -rw-rw---- 1 mysql mysql 5.0M Nov 11 11:45 ib_logfile0 
17956939 5.0M -rw-rw---- 1 mysql mysql 5.0M Nov 11 10:44 ib_logfile1 

に気づいたとしてGBytes。

だから私の質問は多分明らかです。データベースの現在のスペースが非常に小さい場合、なぜmysqldumpが大きなファイルを作成していますか?それについてibdataは有罪ですか?

私はmysqldumpををibadata上のデータのバックアップのいくつかの種類を生成する必要があるが、私はちょうど必ずとなぜこれが起こっているかを知りたいということを避けることができないと仮定します。

ありがとうございます!

PS:私はこの質問については、以前に検索したが、私が見つけたすべての記事は、私の現在の問題ではないデータベースを縮小する方法についてでした。

+1

このリンクは役立つことがありますhttps://www.percona.com/blog/2013/08/20/why-is-the-ibdata1-file-continuously-growing-in-mysql/ – Samir

+1

'mysqldump'はSQLを生成しますSQL言語の性質によって冗長な照会。 – axiac

答えて

2

mysqldump上のMySQLのドキュメントは(強調は私です)言うように:

のmysqldumpクライアントユーティリティは、元のデータベース・オブジェクト定義を再現するために実行可能なSQL文のセットを生成する、論理バックアップを実行し、テーブルデータ。

したがって、mysqldumpは単純にデータをエクスポートするのではなく、それらをSQL文に変換します。さらに、すべてのデータはテキストとしてエクスポートされるため、すべての数値データとNULLはデータベースよりも多くの領域を占有します。

+0

は、私は、データベースのサイズが371Mである場合(最も重いが、このSQL文に関連するすべてのデータを./casin_info)...is、すべてのあなたのポイントを理解するが、mysqldumpを行う場合は、** **「SQL文のセット」?またはibdataはそれについても言いましたか?なぜなら私はまだ小さいデータベース(300 M)以下がどのようにGbの大きさの.sqlファイルを生成できるかを理解していないからです。ここに私の意見があるかどうかわかりません... – Rubendob

+0

ibdata1は、innodbテーブルスペースのデフォルトのファイル名です。そのため、innodbテーブルのすべてのデータを保持します。 – Shadow

関連する問題