3

サーバー上で実行される非常に単純なタスクを想像してみましょう。多くのユーザーが私たちのサイトでチャットしています。それぞれがオンラインかどうかを知りたいです。

それには、MySQL データベースを使用するか、memcached NoSQL ソリューションを適用するという 2 つの明白なアプローチがあります。

しかし、なぜ memcached のパフォーマンスが速くなる必要があるのでしょうか? 私がそれを正しく理解している場合、MySQL はディスクからではなく、メモリからもデータを読み取ります (セットアップとチューニングが正しく行われている場合)。永続化のためのリソースはほとんどありませんが、多すぎません。ディスクにフラッシュするメモリ ページがわずかしかありません。

主な質問。そのようなタスクに NoSQL を使用する強い理由はありますか? それとも MySQL も問題なく動作しますか?

4

2 に答える 2

4

このような些細なタスクの場合、データはメモリに残り、I/O は問題にならないため、パフォーマンスが大幅に変わることはありません。

あなたの質問は、memcached が典型的な NoSQL エンジンであることを暗示しているようです。memcached はそれ自体がエンティティであり、通常は NoSQL データベースとして概念化されていませんが、高速で揮発性のキー値ストアとして概念化されていることを強調しておきます。

SQL と NoSQL にはそれぞれ、質問の範囲外の長所と短所があります。それに関する詳細情報は、別のスレッドで入手できます

于 2013-05-23T04:43:00.160 に答える
0

一般に、NoSQL はビッグデータの分析用です。Memcached は、高速なキャッシュ システムを作成するためのものです。

チャットにはビッグ データの分析もキャッシュ システムも必要ありません。表示する必要があるのは少数のデータだけであり、データは頻繁に更新されるためです。したがって、リレーショナル DBMS が最適です。

ほとんど変更されない複雑なサイトがあるとします。ページが複雑で、各ページを構成するためにいくつかの複雑なクエリを実行する必要があるとします。その場合、memcached を使用すると理にかなっています。ページを作成してメモリ内に保存できるからです。

膨大なビジネス インテリジェンス データがあるとします。平均、標準偏差、合計などの集計操作を取得する必要があります...まあ、ビッグデータソリューションはMySQLよりも優れたパフォーマンスを発揮する可能性があります. と思いきや、注意点が多々あります。

結論: NoSQL はチャット用ではありません :)

于 2013-05-23T06:00:27.460 に答える