このブログ投稿は、Magentoを使用したさまざまなセッションストレージエンジンのパフォーマンス比較の結果を示しており、最大で約75人の同時接続ユーザーには実際にはパフォーマンスの違いはないと結論付けているようです。
これらのレベル(1秒あたり約5トランザクション、つまり12時間で約430kヒットになる)では、ファイル/ DB / Memcache / Redisはすべてうまく処理されるため、他のすべてのオーバーヘッドがパフォーマンス数値を支配すると思います適切に使用すれば、汗をかくことのない交通です。
これには、スケーラビリティ、信頼性、セキュリティなどの他の要素が残ります。
攻撃者はアプリケーションコードを変更するか、少なくとも読み取り専用であってもキーとストレージアクセスプロトコル/資格情報を発見することができるため、ファイルストレージを危険にさらすことは他のものも危険にさらす可能性があることを最初に述べたいと思います。アクセス。ファイルストレージは、ボリュームの少ないサイトで適切に機能し、セットアップが簡単で、理由を簡単に判断できます。ディスクをヒットしたと言うだけで、DBの読み取りもディスクにヒットし、DBがそれをキャッシュできる場合、OSもセッションファイルをキャッシュしている可能性があります。また、その1つのファイルが読み取られ、ファイル名がわかっている場合は、ファイルシステムがそのファイルシステムにアクセスできます。PHPを使用している場合、アプリケーションを提供するためだけにシステムが実行する必要があるファイル読み取りの数を知っていますか?欠点は、あなたができるということです
Memcacheは比較的高速であり、Memcacheクラスのソリューション(Redisなど)をより幅広く検討している場合は、メモリ内読み取りによる永続性を約束して速度を上げることもできるため、両方の世界を最大限に活用できます。それらはまた、推論するのが比較的簡単であり、セッションのキーバリューの性質はまさにこれらが行うように設計されているものです。これらの1つを埋めるためにセッションにどれだけの時間を費やす必要があるか知っていますか?いずれにせよ、あなたの選択肢のすべては、あなたが彼らの能力に達した場合、あなたに妥協を強いるでしょう。ディスクはファイル(ここでは数とサイズの要素)でいっぱいになり、キャッシュストアは容量でいっぱいになり、データベースの行数は限られ、ファイルアプローチと同じディスク容量制限があります。また、これらのシステムは、分散方式で実行する場合にのみ分散されます。ほとんどは、単一のサーバー設定で問題なく動作します。それらを配布する場合、おそらくすでに分散Webサーバー/データベースサーバーなどがあるので、分散システムの問題がセッションストレージの選択から明らかになることはありません。ただし、10倍のトラフィック/容量などが必要な場合は、ファイルストレージスキームよりもこれを使用した方がはるかに自然です。一部のキー/値ストアでは、比較的簡単にセッションデータの簡単な分析を実行することもできますが、ほとんどの場合、SQLが実行できることの近くには到達できません。
データベースが他のオプションよりも信頼できるかもしれないと提案する理由はわかりませんが、PHPアプリケーションがおそらくすでに使用しているので、データベースの魅力を感じます。つまり、別のサーバー依存関係を追加する必要はなく、セッションデータのフェッチに使用するのと同じ接続を再利用してユーザーデータを取得できるため、データ用、Memcache用などを確立する必要はありません。テーブルも適切に実行され、かなり高速に実行され、古いセッションを取得したり、セッションデータを分析したりするためにすでに慣れているかなり単純なセマンティクスを提供します(なぜそうするのかわからないのですが、そうでない場合は、おそらくこれはおそらくそんなに重要です)。大規模なスケールへのスケーリングは、Redisのようなものほど簡単ではありません。
この選択は最初はそれほど重要ではないと思います。それぞれのアプローチには、課題と利点、および考慮しなければならないことが含まれています。一般的に言って、PHP /デフォルトのフレームワークを使用するだけで十分ですが、最も簡単な方法で作業を進めることもできます。後で選択が悪いことが判明した場合は、パフォーマンス分析によって通知され、取得するトラフィックの特定の性質を考慮して、適切な選択を行うために必要なデータを入手できます。前もって、あなたが合理的に持つことができるのは、一般的な推測だけです。