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

ALTER TABLEADDCOLUMNには長い時間がかかります

    ALTER TABLE ステートメントは、mysqlが新しい列を含むテーブルのすべての行を書き直す必要があることを意味します。 200万を超える行があるので、かなりの時間がかかると思います。その間、サーバーはほとんどIOバウンドになります。通常、次のことを行う方がパフォーマンスが高いことがわかります。

    CREATE TABLE main_table_new LIKE main_table;
    ALTER TABLE main_table_new ADD COLUMN location VARCHAR(256);
    INSERT INTO main_table_new SELECT *, NULL FROM main_table;
    RENAME TABLE main_table TO main_table_old, main_table_new TO main_table;
    DROP TABLE main_table_old;
    

    このようにして、空のテーブルに列を追加し、基本的にその新しいテーブルにデータを書き込みます。このデータは、多くのリソースをロックせずに他の人が見ることはないと確信しています。



    1. MariaDB(レプリケーションとMariaDBクラスター)を使用したMoodleの高可用性データベースの構築

    2. ストアドプロシージャ'dbo.aspnet_CheckSchemaVersion'が見つかりませんでした

    3. SQL Oracle LEFT JOINおよびSUBQUERYエラー:ORA-00905:キーワードがありません

    4. Oracleで月の最終日を取得する方法