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

MySQLデータベースにMyISAMまたはInnoDBテーブルを使用する必要がありますか?

    デフォルトでは常にInnoDBを使用します。

    それ以降のMySQL5.1では、InnoDBを使用する必要があります。 MySQL 5.1では、InnoDBプラグインを有効にする必要があります 。 MySQL 5.5では、InnoDBプラグインはデフォルトで有効になっているため、使用するだけです。

    数年前のアドバイスは、MyISAMは多くのシナリオで高速だったというものでした。しかし、現在のバージョンのMySQLを使用している場合、それはもはや真実ではありません。

    MyISAMが特定のワークロード(テーブルスキャンや大量のINSERTのみの作業など)でわずかにパフォーマンスが向上するというエキゾチックなコーナーケースがいくつかあるかもしれませんが、証明できない限り、デフォルトの選択はInnoDBである必要があります。 MyISAMの方が優れている場合があります。

    通常言及されるトランザクションと外部キーのサポートに加えて、InnoDBの利点は次のとおりです。

    • InnoDBは、MyISAMよりもテーブルの破損に対して耐性があります。
    • 行レベルのロック。 MyISAMでは、リーダーはライターをブロックし、その逆も同様です。
    • データとインデックスの両方の大規模なバッファプールのサポート。 MyISAMキーバッファはインデックス専用です。
    • MyISAMは停滞しています。今後の開発はすべてInnoDBで行われます。

    MyISAMとInnoDB に対する私の回答も参照してください。



    1. CRS 11.2.0

    2. SQL Serverを実行している2つのDockerコンテナ間にリンクサーバーを作成する(T-SQLの例)

    3. java.timeを使用してランダムなLocalDateを生成します

    4. IPv4、IPv6アドレスを文字列として保存するためのサイズ