5

MySQL を使用して PHP で開発された Web サイトがあり、トラフィックが増加すると問題に直面することがあります。より多くのリクエストを処理できるようにサイトをあらゆる面でほぼ最適化しましたが、ピーク時にはまだ問題に直面しています。

私の友人の 1 人が、パフォーマンスを改善するためにバックエンドとして HBase / MongoDB を使用してサイトを再構築することを提案しています。また、それを再構築すれば、クラウド サービスに簡単に移行できると示唆しています。しかし、すべてを学び、再開発する必要があります。

そうする方が良いでしょうか?

4

2 に答える 2

5

最初に行うことは、Web アプリのプロファイルを作成して、ボトルネックが何であるかを判断することです。

間違いなくデータベースへのクエリである場合は、mysql を mongodb に置き換えることをお勧めしますが、ドキュメント データベースはリレーショナル データベースとは異なる方法で動作するため、一部の種類の機能を移植する際に問題が発生する可能性があります。mongo を試すことにした場合は、早い段階で頻繁にプロトタイプを作成してください。保証がないため、より高速になります。

スケーラビリティが本当に問題である場合は、Google アプリ エンジンのようなクラウドベースの Web アーキテクチャに直接飛び込んでみませんか。これは Java または Python とドキュメント データベース (bigtable) ベースですが、最初からスケーラブルな「クラウド」アーキテクチャを使用する必要があります。

もう 1 つのオプションは、キャッシング (memcache を使用) を単純に導入 (または最適化) することです。これにより、アプリケーションのアーキテクチャへの影響が少なくなるため、労力が少なくて済みます。

于 2010-10-18T17:01:52.783 に答える
0

シンプルな MySql スケーラビリティ オプションもあります。「暗い時代」には、ステップ 1 として DB に専用ハードウェアを投入するだけでしたが、最近ではクラスタリングが可能になりました。使用できる MySQL ベースのクラウド型ソリューションもあります。たとえば、Amazon の RDS は、MySQL とすべて同じコマンドで動作すると主張しており、変換も簡単だと主張しています。

そのすべてに取り掛かる前に、最適化、インデックス作成、およびプロファイリングをお勧めします。私は PHP/MySQL CMS ベースのサイトを実行しており、1 日あたり 100 万以上のユニーク ユーザーがいて、クラウドにアクセスする必要はありません。コードが鍵です。

于 2010-10-18T17:25:39.160 に答える