sql >> データベース >  >> RDS >> Mysql

MySQL 5.6-ALGORITHM=inplaceが使用されている場合でもテーブルがロックされる

    そのテーブルで他のDDLをほぼ同時に実行していなかったと思いますか?

    将来のために:

    8.0.12にはALTER TABLE .. ALGORITHM=INSTANTがあります ADD COLUMNの場合 。 ディスカッションを参照してください。 およびALTERリファレンス およびオンラインDDLリファレンス

    INSTANTアルゴリズムを使用して列を追加する場合は、次の制限が適用されます。

    • 列の追加は、ALGORITHM=INSTANTをサポートしない他のALTERTABLEアクションと同じステートメントで組み合わせることはできません。
    • 列は、テーブルの最後の列としてのみ追加できます。他の列の中で他の位置に列を追加することはサポートされていません。
    • ROW_FORMAT=COMPRESSEDを使用するテーブルに列を追加することはできません。
    • FULLTEXTインデックスを含むテーブルに列を追加することはできません。
    • 一時テーブルに列を追加することはできません。一時テーブルはALGORITHM=COPYのみをサポートします。
    • データディクショナリテーブルスペースにあるテーブルに列を追加することはできません。
    • 列を追加するときに、行サイズの制限は評価されません。ただし、行サイズの制限は、テーブルの行を挿入および更新するDML操作中にチェックされます。

    同じALTERTABLEステートメントに複数の列を追加できます。

    アップグレードできない場合は、Perconaのpt-online-schema-changeを検討してください。 または、新しい競合製品gh-ost (binlogを使用します)。



    1. アップデートで数値を比較するMySQLMAX()関数?

    2. PL/SQL-WhereIn句でリスト変数を使用

    3. MySQLはN行の移動平均を計算します

    4. なぜフレームワークを使用するのですか? ZendFrameworkを理解して使用する必要があると私に納得させてください