2012-03-08 13 views
0

の意見私は私はPHP + MySQLで行っていたウェブサイトをリメイクし、パフォーマンスについての何かを知りたいんだ、このフレームワークを使用して、私の最初のサイトを構築しています...で - これらは何千ものレコードに1日の合計に傾向を持っていると、より頻繁に nodeJS、MongoDBは、表現、EJS - メモリキャッシュ

  • 静的に(更新されます(サイトの2つのセクションのための)

    • ブログ記事:私のウェブサイトは、私はコンテンツの2種類がありますソートの)データ:これは(タイトル、メタタグ、ヘッダー画像のURL、固定HTMLコンテンツ、JavaScriptとCSSのファイル名、そのセクションに含める)サイトのセクションのデータのように、私はデータベース内に維持する情報であり、それはほとんど更新されていない、それは非常に小さいですサイズで。

    私はnodeJSの基礎を学んでいましたが、私はPHPでできない方法でウェブサイトのパフォーマンスを改善する方法を考え始めました。だから私がやっていることは:

    私はアプリを実行すると、静的コンテンツはすべてメモリにロードされ、私は配列にデータを格納するコンテンツごとに "モデル"オブジェクトを持っています。そのデータを更新します。つまり、管理者が何かを更新したときに、refresh()を呼び出してデータベースからその配列に新しいデータを取得します。このように、ページを読み込むたびに、データベースにクエリする代わりに、アプリケーションはメモリ内のオブジェクトを直接照会します。直接メモリ内またはデータベースへの一定のクエリは同じように良いか、より良い仕事かのオブジェクトを操作する、パフォーマンスの任意の増加がなければならない場合、私は知りたいのですがどのような

    です。

    あなたの答えをサポートしている任意のドキュメントはあまり理解されるであろう。

    おかげ

  • 答えて

    1

    私は、任意のパフォーマンスの違いがあるだろうとは思いません。まず最初に、この静的データはおそらくそれほど大きくなく(最大100レコードまで)、それをDBに照会するのは大したことではないということです。もう一つ重要な点は、ほとんどのDBエンジン(mongoDBを含む)にキャッシュシステムが組み込まれていることです(詳細はどのように動作するのかはわかりませんが)。 3番目の点は、Redisのようなストレージエンジンを使用しない限り、クエリ結果をメモリに保持するのが規模が大きくないことです(大きなWebサイトの場合)。それは私の意見ですが、私は専門家ではありません。一般的なデータベースのパフォーマンスの面では

    2

    、MongoDBはメモリ内の作業セットを維持します - それは、操作の基本的な方法です。

    したがって、データがスワップアウトされるメモリ競合がなく、物理RAMに収まらないほど大きなものでない限り、データベースへのクエリは非常に高速でなければなりません(サブデータセットが最初にページングされると、ミリ秒の範囲)。もちろん

    、データベースが別のホスト上にある場合、あなたはネットワークを考えるの待ち時間などを持っていますが、あなたはそれを疑う理由があるまで、理論的には、あなたは同じとして扱うことができます。

    関連する問題