パフォーマンスの観点からMyISAMとInnoDBの比較に関する多くの記事を読み、データの読み取りにはMyISAMを使用し、データの書き込みにはInnoDBを使用することにしました。
下の画像のように2つの構造を使用したいと思います。2つの同じ(同期された)データベースですが、テーブルエンジンが異なります。
この構造についてのあなたの提案は何ですか? この設計の欠点は何ですか?
目標のパフォーマンスレベルのいくつかを共有する必要があると思います。提案の主な欠点は、MyISAMのすべての欠点(テーブルレベルのロックとゼロクラッシュリカバリ)が得られ、InnoDBの利点(クラッシュリカバリ、行レベルのロック、およびトランザクション)がまったく得られないことです。文字通り何の利益もない複雑さを追加しています。InnoDBのパフォーマンスは、適切に調整して適切に使用すると、実際には非常に優れています。私は、平均して1秒あたり2万から3万のクエリを処理するマシンのフリートを実行しています。これは、1秒あたり数百万のクエリの合計であり、すべてInnoDBです。パフォーマンスは問題ではありません。
この設計の欠点は、書き込み時に莫大なレプリケーションペナルティを支払うことです。これには、InnoDBの想定される読み取りペナルティとMyISAMの想定される書き込みペナルティの両方が含まれます。