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

InnoDBまたはMyISAM-なぜ両方ではないのですか?

    MyISAMテーブルとInnoDBテーブルの両方を同じデータベースに含めることができます。ただし、非常に大きなテーブルがある場合、MyISAMはテーブルロックの問題を引き起こします。これが最終的に行うことは、単一のトランザクションに対してテーブル全体をロックすることです。これは、多くのユーザーがWebサイトを使用している場合は非常に悪いことです。たとえば、ユーザーがサイトで何かを検索していて、クエリが完了するまでに数分かかる場合、テーブル全体がロックされているため、その期間中、他のユーザーはサイトを使用できません。

    一方、InnoDBは行レベルのロックを使用します。つまり、トランザクション中にテーブルからロックされるのはその行だけです。 InnoDBは、MyISAMのような全文検索を提供しないため、検索が遅くなる可能性がありますが、MyISAMのテーブルレベルのロックと比較すると、それは大きな問題ではありません。多くの大規模サイトのようにInnoDBを使用する場合は、Sphinx のようなサーバー側の検索エンジンを使用できます。 全文検索用。または、MyISAMテーブルを使用して、f00のような検索を行うこともできます。 提案しました。個人的にInnoDBをお勧めしたのは、主に行レベルのロック機能だけでなく、他の多くの方法で全文検索を実装できるためです。

    基本的に、選択、挿入、更新がたくさんあるメッセージボードアプリケーションがある場合は、おそらくInnoDBが一般的に適切な選択ですが、そのようなもの(または登録ユーザーとのその他のもの)を構築していない場合は、ほとんどが静的コンテンツ(または書き込みよりも読み取りが多い)の場合は、MyISAMを使用できます。



    1. SQLServerデータをテーブルからCSVファイルにエクスポートする方法

    2. Heroku Postgres:psql:致命的:ホストのpg_hba.confエントリがありません

    3. MySQLデータベースをPHPMyAdminからエクスポートしてSQLiteにインポートするにはどうすればよいですか?

    4. 左の参加が速くなりますか、それとも内部の参加が速くなりますか?