9000万レコードのテーブルを更新したいと思います。例えば巨大なテーブルのMySQLアップデート
:
UPDATE huge_table set field3 = CONCAT_WS(' ', field1, field2)
更新はしばらくの間、テーブルをロックして、私はロックされた時間の量を最小限にしたいです。
値を格納する一時テーブルを作成し、一時テーブルから割り当てる必要がありますか?または、1000のバッチで更新しようとしますか?おそらく両方の組み合わせ。
9000万レコードのテーブルを更新したいと思います。例えば巨大なテーブルのMySQLアップデート
:
UPDATE huge_table set field3 = CONCAT_WS(' ', field1, field2)
更新はしばらくの間、テーブルをロックして、私はロックされた時間の量を最小限にしたいです。
値を格納する一時テーブルを作成し、一時テーブルから割り当てる必要がありますか?または、1000のバッチで更新しようとしますか?おそらく両方の組み合わせ。
私はバッチでアップデートを実行します。
異なる環境で同じような負荷をかけて、新しいデータセットの代わりにテーブルを再ポイントする必要があります。
どちらもありません。できるだけ早く更新する必要があります。一時テーブルを作成すると、9000万の挿入と削除が追加されます。
テーブル分割を検討してください。 http://dev.mysql.com/doc/refman/5.5/en/partitioning-overview.htmlを参照してください。
どのような解決方法を使用するのかまだまだわかりません。 – Bryan