2016-09-21 16 views
3

私はユーザーが製品間の仕様を比較できるサイトを構築しています。ユーザーは、特定の製品のスペックが必要な単一の製品のスペックを見ることができますが、選択した製品をサイト上の他の製品と比較することもできます。私は75-100のようなもので終わるつもりだと思う。PHP - セッション変数のパフォーマンス(セッション変数と読み取りファイル)

すべての仕様は、グローバルcsvファイルで利用できます。各製品には潜在的に37の機能があり、75-100の間にあります。このファイルのサイズは約50KBです。同じデータを含む各製品の個別ファイルもありますが、1つの製品のみです。 $ _SESSIONでファイル全体がすべてのページのすべての時間をそれを利用できるようにする

  1. ロード:

    ことは私は良いパフォーマンスを確保するための最良の方法だろうかと思いました。これは、すべてのデータが一度ロードされ、追加の要求なしで常に利用可能であることを意味しますが、これがパフォーマンスに影響する可能性がありますか?

  2. 個別にロードファイルを、それらが必要な時はいつでもそれは、誰かが製品を比較する(そしてそれが目標です)を開始した場合、PHPはファイルにデータベースとのアクセスにそれを

  3. ストアデータをすべての時間を読まなければならないことを意味し必要なときはいつでも

どのようなオプションが最適でしょうか?あなたが他の解決策を考えているなら、もちろん私も興味があります。

おかげ

答えて

1

あなたがデータを保存しようとしているので、あなたがデータベースにそれを置きたいかもしれませんが;)

データベース・エンジンは、キャッシングで本当に良いですので、あなたはおそらくないでしょうすぐにパフォーマンスについて心配する必要があります。また、「ファイル」が突然大きくなる場合には、頭痛の予防のために自分自身を構築しています。

データベースのパフォーマンスが十分でない場合は、MySQLの場合はMEMORYテーブルに、またはmemcachedの場合はいつでも使用できます。

+0

ありがとう!データベースオプションを使用することも考えましたが、データベースに10個のクエリがあるか、一度全体のファイルがロードされた方が良いかどうかを理解したいと思いますか? – Laurent

2

$ _SESSIONにcsvをロードすることは依然としてリクエストごとに実行する必要があり、効率的ではありません。

Mysqlはwrite-some/read-someのソリューションには最適ですが、あなたの状況はあまり書いてない/読んでいることが多いようです。

csvファイルの内容を保存するには、以下のオプションのいずれかのようなメモリ内キャッシュを使用すると、おそらくはるかに理にかなって:

+0

こんにちはスチュアート、ありがとう!私は実際に月に3〜4回書くと何度も(同じセッション内で何回も)読むことができます。彼らがあなたが提案した解決策を提供するなら、ホスティング会社に確認する必要があります。あなたの提案をありがとう! – Laurent

関連する問題