2010-12-30 21 views
1

私は非常に単純な分類サイトを構築しています。簡単なmysqlのパフォーマンスの質問

mysqlテーブルにデータを格納するフォームがあります。 このデータはどのように表示する必要がありますか?テーブルのデータからhtmlページを作成し、それをユーザに表示する方が良いですか、それとも、ユーザがデータを見るたびにmysqlテーブルからデータを取得する方が良いですか? 私は明確だったことを願っています!

+2

コードはありません。テーブルスキーマはありません。完全に**はっきりしません。** – ajreal

+0

この質問に対する回答は、「それに依存する」節が多すぎるため、試しても価値がありません。少し具体的にしてください。少なくとも、新しいデータをデータベースに追加する頻度を教えてください。 – fredley

答えて

3

パフォーマンス面では、HTMLページの静的バージョンを維持する方が一般的には優れています。

しかし、ディスク容量を膨らます可能性がある動的コンテンツが多すぎる可能性があります。また、キャッシュの有効期限を追跡するために余分な努力を払う必要があります(コンテンツを動的に生成するよりもさらに高価になる可能性があります)。

これはトレードオフの問題であり、データの性質を知るために必要な他のアドバイスを行うことです。

  • コンテンツがほとんど更新されていないが頻繁に更新されるブログの場合は、キャッシュする方がよいでしょう。

  • ほとんどのユニークなクエリと在庫の変化がある製品検索エンジンの場合は、常にデータベースをクエリする方がよいでしょう。

    MySQLは、クエリキャッシュを実装すること

注:これは、クエリの結果セットをキャッシュすることができますし、クエリがそのまま繰り返され、何の基礎となるテーブルは最後のクエリ以降変更されなかった場合、それはキャッシュから務めています。

キャッシュの有効期限が自動的に追跡され、ファイルをディスクに保存する必要がなくなり、一般的に両方の方法の利点が組み合わされます。

+0

ありがとう、私が知る必要があったthatsすべて:) –

1

キャッシュメカニズムを使用して両方を使用します。パラメータに基づいて、ページは再レンダリングされる(X時間で表示されていない)か、そうでない場合はキャッシュから表示されます。

説明したように、データの量と頻度に大きく依存します。詳細については、より詳細な情報が必要です。

0

それはいくつかに依存します。

1)コンテンツはどのくらいの頻度で変更されますか?あなたの分類された広告は静的であるか、またはそれらはページの多くを変えていますか。あなたのページで回転広告、ユーザーからのコメント、レビューなどをどれくらいコントロールしたいのですか?

2)非常にトラフィックが多いですか?あなたはデータベースのボトルネックを目にしていますか?

質問2に「はい、明日は明日」と言える場合は、静的にしてください。ページを擬似動的にするために、via ajaxやデータベース呼び出し以外のもの(つまりインクルード)に他のものを追加することさえも意味します。

質問1に「はい」と答えた場合は、常に最新の内容になるように動的ページを表示してください。最近、ユーザーは投稿などの即時の満足感に慣れてきました。スレッド(私はあなたにSlashdotを見ている)に表示されるコメントのために何時間も待つ日がなくなった。

希望すると便利です。

+0

それは確かにします!ありがとう。 –

0

要件を満たす最も簡単な解決策から始め、そこから行ってください。

キャッシュを実装していてもそれを必要としなかった場合、時間(および/または金額)が無駄になりました。代わりに機能を実装できました。また、機能を追加するたびにキャッシュを処理する必要があります。

あなたはキャッシュを実装して使用すると、1つを必要と理解していない場合は、今あなたがキャッシュされる必要がある正確に何を知っているので、あなたは、スマート 1を実装するために非常に良い立場になりました。