Geçici veri SQL veritabanında mağaza vs Session Veri depolamak

5 Cevap php

PHP $ _SESSION değişkeni kullanarak bir oturumda (bu oturuma ilişkin) geçici verileri saklamak veya depolamak ve bir SQL veritabanından almak, daha verimli olduğu merak ediyorum?

Zaman ayırdığınız için teşekkür ederiz.

5 Cevap

Varsayılan olarak bu dosyaya olan istek, oturum oturum işleyicisi tarafından yazılı alır bitirdiğinde oturum değişken, yani, bir depolama mekanizması tarafından desteklenmektedir unutmayın. Sonraki isteği üzerine bu dosya (veya herhangi başka oturum işleyicisi kullanır) geri çekilir.

Okuma ve her istek üzerine bu verileri yazıyorsanız, sadece $ _SESSION değişkenleri ile sopa, bağlantı sorgulama ve veritabanı güncelleme havai varsayılan $ _SESSION daha hızlı olmayacaktır.

Muhtemelen sadece hiç birden fazla yük dengeli sunucuları çalıştıran ve aralarındaki oturum verilerini paylaşmak gerekir eğer bir veritabanı destekli oturumu kullanmak isteyeceksiniz. Bu durumda, veritabanı oturumları havai bir fark dereceye sitenizi yavaşlatan bulmak eğer web sunucusu ve veritabanı arasında memcached birbirine yapışır düşünebilirsiniz.

Gerçekten saklamak niyetinde veri hacmi ve işlemek niyetinde trafik miktarına bağlıdır. Veriler minimal ve site tüm yollarla web sunucusunun dosya sistemine oturum verileri yazar varsayılan oturum işleyicisi kullanmak, bir web sunucusuna ötesinde ölçekli gerek yoksa.

Eğer bir kutu ötesinde ölçek gerekiyorsa, bu tür memcached veya normal veritabanı gibi bir bellek veritabanı ya içine oturum verilerini saklamak önerilir. Sen override the session handler in PHP can ve $ _SESSION kullanırken veritabanına depolamak için kendi uygulama yazmak.

Ben bir veritabanı veya bir dosyadan okuma hakkında çok fazla bilmiyorum, ama gerçek "DB erişim diğerlerinden daha yavaş" olduğunu sanmıyorum. Ben Ağ gecikmesi I / O erişim karşılaştırıldığında önemsizdir benim okul ders öğrendim. Biz oturumları için DB kullanmak ve eğer biz bazı avantajları var:

Farklı hiçbir dosya sistemi olduğundan birçok sunucuları hakkında endişe gerek yok.

Ben de bir veritabanından bir şeyler okuma / / depolayan bir dosya sistemi daha kolay olduğunu düşünüyorum.

Ayrıca, bir veritabanında oturumları saklamak, paylaşılan hosting kullanıyorsanız güvenlik için önemli bir avantajdır.

ben yanlış olsaydı, beni düzeltin lütfen. ben hala öğrenmek için birçok şey var. Teşekkürler.

Ne daha verimli saklamak istiyorsanız ve geçici verilerle yapmak için ne yapmayı planlıyorsunuz veri miktarına bağlıdır. Bazen dosya depolama oturum verileri 5 meg saklanan ettik ve korkunç bir performans katil oldu. Ama devlet 5 MB'lik bir çok şey olduğunu ve gerçekten orada almak gerekir.

Her neyse sen stored in a database table olmak PHP'nin oturumları yapılandırmak ve her iki dünyanın en iyi olsun.

Veri bir kullanıcı oturumu düzgün karakteristik değilse, hala, sonra oturumları kullanmanız gerektiğini ve bunun yerine bazı model nesnesini kullanın.

PHP oturumları DB erişim daha hızlıdır. Ama PHP oturumları bazı known issues var.

Eğer gerçekten hızlı erişim süreleri istiyorsanız, aynı zamanda PHP oturum yönetimi tuzaklar kaçınarak, memcached bakmak isteyebilirsiniz.