10

明らかに、どちらにも利点があります。MyISAM は高速ですが、簡単に破損する可能性があります。InnoDB は低速で​​すが、トランザクションと外部キーのおかげでより安定しています。したがって、両方のエンジンを 1 つのデータベースに混在させるとよいでしょう。それが可能なら?

4

3 に答える 3

19

覚えて!同じデータベースにテーブル タイプを混在させても問題ありません。実際、これは推奨されており、頻繁に必要とされています。ただし、2 つのタイプを結合するときにパフォーマンスの問題が発生する場合は、一方を他方に変換してみて、問題が解決するかどうかを確認することが重要です。この問題は頻繁には発生しませんが、報告されています。

MySQLから取得 - InnoDB と MyISAMの比較

于 2009-12-28T16:28:33.450 に答える
6

もちろん、それは可能です。

CREATE TABLE MyISAM_tbl(
    ....
)ENGINE=MyISAM;

CREATE TABLE InnoDB_tbl (
    ....
)ENGINE=InnoDB;

FK には InnoDB を好むので、常にこれを行っていますが、全文検索には MyISAM が必要になることがあります。問題はありませんでした。

于 2009-12-28T16:29:27.067 に答える
1

一言で言えばそうです。(CREATE TABLE では、エンジンの種類を指定できます。)

ただし、複数のテーブル タイプに対してクエリを実行する場合は注意が必要です。(たとえば、MyISAM で外部キーを利用することはできず、MyISAM テーブルに影響を与えるトランザクションをコミットすることはできません。)

本質的に、これは最善のアプローチではないのではないかと思います。(データベースの残りの部分からセグメント化された定義済みの一連のテーブルのトランザクションのみが必要であり、InnoDB が遅すぎる場合を除き、より高速なデータベース サーバーを取得すると、問題が軽減される可能性があります。)

于 2009-12-28T16:32:26.043 に答える