web-dev-qa-db-ja.com

MySQLのオンラインスキーマ移行:いつ開始するか?

私はソーシャルメディアSAASの技術リーダーです。現在、mySQLデータベースに格納するデータ量が大幅に増加しています。

単一のMySQL dbがあり、多くの本当に小さいテーブルのほかに、約500k-1.5m行を持つ2つのテーブルがあります。

現在、DDLクエリを実行するとき(これらのテーブルに新しい列を追加するとき)は、非常に長い実行時間(around 4-5 mins)に対処する必要があります。

オンラインスキーマ移行のヒントを探し始めたところ、次のことがわかりました。

これらの戦術は調査する価値がありますが、私はまったく不安を感じ始めました。行の数が非常に少ないテーブルでは、このような高度なメソッドを使用する必要があるとは思いません。 (実際に巨大なテーブルはどうですか?)

ですから、mysql.cnf自体に関するヒントや、ddlクエリに関するその他のパフォーマンスのヒントがあるのではないでしょうか。

5
Johannes N.

Perconaのpt-online-schema-changeは、非常に少ないダウンタイムでALTERを実行できるため、より良い解決策になると思います。ただし、テーブルにTRIGGERを追加する必要があります。

テーブルでDDLを実行すると、テーブルが再構築されます。mysqlは行ベースのエンジンであるため、index rebuildこれは、エンジンによっては非常に高価になる可能性があります。テーブルの複雑さも要因です。

4
Up_One