MySQL をキー値データベースとして使用する場合と、Redis/MongoDB/CouchDB を使用する場合のパフォーマンスへの影響を知りたいです。私は過去に Redis と CouchDB の両方を使用したことがあるので、それらのユースケースに精通しており、キーと値のペアを NoSQL と MySQL で保存する方が良いことを知っています。
しかし、ここに状況があります:
- 私たちのアプリケーションの大部分には、すでに多くの MySQL テーブルがあります
- Heroku ですべてをホストしています (MongoDB と MySQL しかなく、基本的にアプリごとに 1 db タイプです)。
- この場合、複数の異なるデータベースを使用したくありません。
基本的に、MySQL でキー/値テーブルを持つことのスケーラビリティに関する情報を探しています。おそらく、3つの異なる任意の層で:
- 1 日あたり 1000 回の書き込み
- 1 時間あたり 1000 回の書き込み
- 毎秒 1000 回の書き込み
- 1 時間あたり 1000 回の読み取り
- 1 秒あたり 1000 回の読み取り
実際の例は、MixPanel の Real-time Web Analytics Tracker のようなものを構築する場合です。これは、トラフィックに応じて非常に頻繁に記述する必要があります。
Wordpress やその他の一般的なソフトウェアは常にこれを使用しています。Post にはキーと値だけの「メタ」モデルがあるため、検索可能なオブジェクトに任意のプロパティを追加できます。
もう 1 つのオプションは、シリアル化可能なハッシュを BLOB に格納することですが、それはより悪いようです。
あなたの見解は何ですか?