2011-08-05 5 views
0

セッション変数には、必要になるたびにMySQLテーブルから引き出すのではなく、よく使われるパラメータ(名前、画像など)を保存する予定です。理論的にはデータベースとは対照的に変数で頻繁に使用されるパラメータを保存する方が効率的ですが、SESSION変数がどのように保存されるかわからないため、これが本当であるかどうかはわかりません。誰かが情報を引き出すことを知っていますか? SESSION変数からMySQLテーブルを照会するよりも効率的ですか?セッション変数とMysqlテーブル

「変数」という用語は、サーバーの一時ディレクトリ内のファイルに格納されるため、緩やかに使用されます。

あなたは、私はそれが意味するデータベースは、基本的にファイルは何かということですが、はいに「一時的なセッションファイル」

+1

はい、メモリは常に(ok、99%)dbを照会するよりも高速です – Noah

答えて

2

はい、セッション変数から情報を引っ張ると、その情報をデータベースに照会するよりも効率的です。しかし、セッションの変数を変更するには、サーバのファイルシステムとRAMにファイルを読み込む必要があります。ディスクの速度、IO負荷、dbの速度などの要因によっては、 DBからの同じ情報。あなたの特定の設定に関する情報がなければ、言うことは難しいです。一つのことを念頭において、複数のWebサーバーを使用して成長させようとする場合は、セッションを中央サーバー(おそらくデータベース)、memcache、または共有マウントに保存するためにカスタムセッションハンドラーを記述する必要がありますすべてのWebサーバーがセッションファイルを取得できるようになる場所最後に

、はDBからのたびにそれをロードするよりも効率的な場合がありセッションに何かを入れて、そこからそれを使用して、あなたはまだどこか、ので、あなたの知識からそれをロードしていますハードウェアとセットアップがあなたのベストガイドになります。

0

を対照的に、それは、この目的のために最適化されたファイルを読み込むことは、データベースを読み込むよりも高価であると思うだろうセッション変数を使用する方が効率的です。 通常、セッション変数はサーバー上の/ tmpディレクトリに格納されています(PHP Infoファイルで自分の設定が確認できます)

これらはサーバーに格納されているため、

0

はい、セッションがサーバーに保存されますが、セッションの有無にかかわらず、ユーザーがログに記録されているか、ユーザーが正しいセッションIDを持っているかどうかを確認する必要があります。あなたの列、行、その他多くのものの数

1

PHP用のデフォルトのセッションハンドラは、その情報をディスクに保存します;セッションごとに一意の一時ファイルです。ディスク/ファイルシステムが過負荷になった場合、またはデータが古くなった場合などです。

ディスクにアクセスしてセッションにアクセスする場合は、MySQLにアクセスするよりもオーバーヘッドが少し少なくなりますが、ページ要求ごとにディスクにアクセスしています。メモリ内のSessionハンドラを使用できます。

0

セッション変数は、比較的少量の一時データを保持するのに適しています。彼らは "セッション"に適しています。

他のすべてのためにデータベースを使用してください。特に用:

  • 大きな「取引」のいずれかの種類のデータの量、
  • 、または「セッション」の間で永続化する必要があるデータのための

データベース(例えばMSSQL)対この記事はやや時代遅れであり、それは、PHP自体には適用されません...しかし、それはあなたのファイルシステムの相対的な効率性に関するいくつかのアイデアを与える必要があります(たとえば、NTFS):

関連する問題