1

私は InnoDB と MyISAM について多くの検索を行いましたが、それぞれの長所と短所を理解していると思います。しかし、InnoDB の特定の欠点についての詳細を探しています。書き込みと更新が多いテーブルには最適ですが、大きなテーブルでは選択が遅くなることを読んだことがあります(私の場合は+-10百万になります)。

私のテーブルは多くの書き込みと更新 (+-100/秒) を処理しますが、選択は頻繁に行われず (1 日に最大 500 回のみ)、常にparent_id行によって選択されます。私は自問しています。

大きなテーブルでの InnoDB の速度はどれくらいですか? 選択で良好なパフォーマンスを期待できますか?

私の質問に適したベンチマークが見つかりません。お手伝いありがとうございます。

4

1 に答える 1

2

大きな選択で InnoDB が遅いということはどこにも見たことがありませんが、それは最優先事項ではなかったので、可能だと思います。

それでも、あなたのシステムは書き込みが多いと言っているので、テーブルごとに複数の同時リーダーまたは単一のライターしか実行できないため、MyISAM がそこで大きな打撃を受けることは明らかです。一方、InnoDB は行レベルのロックを管理し、その場合でも、複数のリーダーがそのCOMMIT時点までの前のバージョンを読み取ることができ、新しいバージョンのデータをアトミックに置き換えます。

関連する問題として、ACID 準拠があります。これらがないと、データが絶望的に​​一貫性のない混乱に変わる危険があります。特に大きなテーブルと多くの更新の場合。

最後に、何らかの方法で MyISAM を管理して InnoDB よりもパフォーマンスを向上させることができたとしても、それは InnoDB がまったく不適切であることを意味するわけではありません。極端な場合、RAID1 に 2 台の SSD を配置するだけで、1 秒間に数千の更新を問題なく処理できます。

于 2012-11-20T21:10:21.830 に答える