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

大きなテーブルから列を削除

    あなたがすることは何でも38mの行を読み書きする必要があるでしょう、それで何も本当に速くなることはないでしょう。おそらく最速の方法は、データを新しいテーブルに配置することです。

    create table newTable as
        select id1, id2
        from oldTable;
    

    または、タイプとインデックスを確実に保持したい場合:

    create table newTable like oldTable;
    
    alter table newTable drop column assocId;
    
    insert into newTable(id1, id2)
        select id1, id2
        from oldTable;
    

    ただし、通常は、大量のデータをロードする前にテーブル上のすべてのインデックスを削除し、後でインデックスを再作成する方が高速です。



    1. DateTimeのドロップタイム

    2. EntityFrameworkデータベースプロバイダーの互換性エラー

    3. (IDではなく)インデックスでSQLiteの行を取得する方法

    4. PostgreSQLで現在の日付を取得する方法