我有一個網站,當用戶沒有登錄時速度超快,但SESSIONS開始在登錄後開始使用時顯着減慢。儘可能立即但不起作用。PHP:導致緩慢的SESSIONS
會話設置爲在/ tmp目錄
人對如何改善任何想法的文件?我爲每個用戶使用8個$ _SESSION。會降低,提高性能?
編輯:澄清,我設置8個不同的$ _SESSION變量,不開放8個會話。
編輯2:將我的SESSION數據合併到一個數組中。沒提升。數據是630個字符。使它變小也不會改善它。
我有一個網站,當用戶沒有登錄時速度超快,但SESSIONS開始在登錄後開始使用時顯着減慢。儘可能立即但不起作用。PHP:導致緩慢的SESSIONS
會話設置爲在/ tmp目錄
人對如何改善任何想法的文件?我爲每個用戶使用8個$ _SESSION。會降低,提高性能?
編輯:澄清,我設置8個不同的$ _SESSION變量,不開放8個會話。
編輯2:將我的SESSION數據合併到一個數組中。沒提升。數據是630個字符。使它變小也不會改善它。
我不知道在會話中保存了哪些數據,但聽起來有點像在整個對象中保存大量大數據,例如整個對象。會話是從您的硬盤寫入並讀取的。當你有很多數據時,加載它們需要很多時間。
要檢查您的會話是否有很多數據,您可以使用var_dump($_SESSION);
來檢查SESSION中的數據。
接下來就是您應該將數據放在像SSD這樣的快速設備上,例如不在NFS文件系統或其他任何設備上。
正常情況下,會話系統足夠快。
你必須和你可以使用一個會話來存儲所有的信息。無需爲單個用戶進行8個會話。 – 2015-04-04 11:17:39
'$ _SESSION []'中的條目數量並不重要(如果它們在合理的限制內)。會話數據在'session_start()'上只讀取一次,並在腳本結束時(或'session_write_close()')只寫一次。這需要很長時間的一些原因可能是一個非常緩慢的文件系統掛載在'/ tmp'(NFS,也許?),你存儲在$ _SESSION'(非常大的數組?)中的非常多的信息。我寧願調查數據庫查詢(代碼通常對登錄用戶運行的查詢次數多於匿名用戶)。 – axiac 2015-04-04 11:59:44