質問

reddit のような、トピックごとに多くの賛成票や反対票があり、コメントがたくさんある Web サイトの場合、何を選択すればよいでしょうか?

Lighttpd/Php それとも Lighttpd/CherryPy/Genshi/SQLAlchemy?

そしてデータベースの場合、よりスケーリングが良く、最速の MySQL (4.1 または 5 ですか?))それともPostgreSQLでしょうか?

役に立ちましたか?

解決

Postgresの経験が限られているため、MySQL / PostgreSQLの質問には答えられませんが、Mastersの研究プロジェクトはCherryPyを使用した高性能Webサイトに関するものであり、使用しても失望することはないと思いますあなたのサイトのCherryPy。市販のハードウェアで数千の同時ユーザーに簡単に拡張できます。

もちろん、PHPについても同じことが言えますが、PHPとCherryPyのパフォーマンスを比較する妥当なベンチマークはわかりません。しかし、CherryPyが1秒あたりの膨大な数のリクエストでトラフィックの多いサイトを処理できるかどうか疑問に思っているなら、答えは間違いなくイエスです。

他のヒント

理想的なセットアップは次のようになります。 これ:

caching

要するに、 nginx データを直接フェッチできる独自のモジュールを備えた、高速で軽量な Web サーバー/フロント プロキシです。 memcachedの RAM ストアを、ディスクや動的 Web アプリにアクセスすることなく保存できます。もちろん、リクエストの URL がまだキャッシュされていない場合 (または期限切れの場合)、リクエストは通常​​どおり Web アプリに進みます。優れた点は、Web アプリが応答を生成すると、そのコピーが memcached に送信され、再利用できるようになることです。

これらすべては、Web ページだけでなく、AJAX クエリ/応答にも完全に当てはまります。

この記事では、「バック」サーバーは http であり、特に雑種について話しています。後ろが FastCGI やその他の (より高速な?) フレームワークであればさらに良いでしょう。ただし、nginx/memcached チームが負荷の大部分を吸収するため、それほど重要ではありません。

AJAX トラフィックの URL スキームが適切に設計されている場合 (個人的には REST が最適です)、DB の大部分を memcached に直接配置でき、任意の POST (アプリに渡されます) でキャッシュを先取りして更新できることに注意してください。

DBの質問では、PostgreSQLはMySQLよりもスケーラビリティが高く、データの整合性が優れていると思います。小規模なサイトの場合、MySQLの方が高速かもしれませんが、データベースのサイズが大きくなると、MySQLの速度は大幅に低下します。 (注:大規模なデータベースにMySQLを使用したことがないので、おそらくそのスケーラビリティについてセカンドオピニオンを取得する必要があります。サイト。

さらにデータが必要になります。ジェフには同じ問題に関する記事がいくつかあり、答えはパフォーマンスの問題が発生するまで待つことでした。

最初に-誰がホスティングしていて、何が利用可能ですか?あなたの社内タレントスキルセットは何ですか?外部の会社を雇うつもりですか?彼らは何をお勧めしますか?新しいフレームワークを学ぶ意欲のあるチームとの新しいプロジェクト?

2番目のことは、いくつかのモックアップを行うことです-インターフェースはどのように機能しますか。どのデータをロードして持続する必要がありますか?アイデアは、ウェブとデータベース間のトラフィックを下に保つことです。例えばクエリの多いチャットページはありません。など。

データの要件とフローについての理解が深まったら、データベースの設計に取り組みます。従うべきルールはたくさんありますが、より良いルールの1つは正規化ルールに従うことです(はい、私はなぜdbなのですか?)

これで、いくつかのページが作成されました-テストを実行します。問題がありますか?はい、今それを見てみましょう。ページサービングまたはデータベースプル?測定してから一連のアクションを選択します。

nginx + php + xcache + postgresqlを使用します

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top