MongoDBを使ったセッション管理
MongoDBを使ったセッション管理のほうがMySQL(PDO)より確実に速いよね?でも、そのためのクラスが用意されてないよね?
ってことで、書いてみました。
書いたといっても、DBのセッション管理クラスをそのまま書き換えたぐらいです。
設定
使い方はfactories.ymlにて以下のように設定。
レプリケーションさせたりというところまでは考慮してません。
storage: class: sfMongoSessionStorage param: host: localhost #接続先 port: 27017 #ポート db_name: symfony #DB名 collection_name: session #コレクション名
結果
ざっくばらんにローカル環境でab -n 5000 -c 100 した結果
MySQL => Requests per second: 10.86 [#/sec] (mean) MongoDB => Requests per second: 16.61 [#/sec] (mean) Default => Requests per second: 17.58 [#/sec] (mean)
思っていた以上にMongoDBが優秀な結果に。CPUの使用率の問題などありますが使えそうです。