[MySQL] テーブルのエクスポートで、レコード数の不一致が生じる問題 [phpMyAdmin,Dump all rows]

この記事は約2分で読めます。
スポンサーリンク

当サイトには広告が含まれています。

DB(MySQL)にある巨大なテーブルをローカルに保存したいという質問を受けた。

保存自体は、phpMyAdminにあるエクスポートで可能なのだが、

エクスポート

ダウンロードした後、落としたファイルのレコード数と、テーブル上のレコード数を確認するように。

テーブルへの書き込みを止めてこれを行っても、ファイル<テーブル上となることがあるのだ。

テーブルへの書き込みは止めているのでそれ以上レコードは増えないのだが、ファイルとテーブルのレコード数に差があり、調べてみると、終端のレコードが欠損している。

ダウンロード回線の問題で、ファイルが破損している可能性もあるが、そうではない。

実は、phpMyAdminのエクスポートには、ダンプ行を指定する箇所がある。

ダンプ行を指定する箇所

これが、その時点でのレコード数と一致していないことがあるのだ。

上では651001行とあるが、この時点でのレコード数は、それよりも多い。

つまり、この設定のままエクスポートすれば、後ろのレコードが抜けてしまう。

意図的に「Dump all rows」にチェックを入れて、実行する必要がある。

最終レコードの比較を、ファイルとテーブルで行うワケだが、ファイルがGBを超えるような巨大ファイルだと、ファイルを開けないことがあるので、終端の一部のみを開けるようなエディターが必要になる。

タイトルとURLをコピーしました