Önbellek en iyi yöntem PHP nesneleri?

2 Cevap php

Şu anda kullanıcı kayıtlarını kolları büyük bir site geliştiriyorum. Argüman aşkına için bir sosyal ağ web sitesidir. Ancak, sayfa yükler bir gecikme fark ettim ve bu yüzden bazı şeyleri yavaşlatıyor sayfalarında nesnelerin yaratılış olduğunu deşifre ettik.

Örneğin, bir yapı parametre olarak geçirilen bir kimlikle örneği zaman, üyeleri veritabanı tablosunda olduğu üyelerinin satır için veritabanını sorgular, bir üye nesne var. Kötü, ama bu bir sayfa yüklendiğinde her zaman oluşturulur değil; Yeni bir üye nesne her arkadaşınız için oluşturulan olarak ve belirli üyelerin arkadaş bir dizi çağrı, bir kereden fazla söylemek çağrılacak.

Yani tek bir sayfada ben aynı nesnenin yedi yukarı var, ancak farklı özellikler içeren yapabilirsiniz.

Ne yapmak isteyen kulüpler veritabanı yükünü azaltmak için bir yol bulmak ve sayfa yükler arasındaki nesneleri kalıcı sağlamaktır. Örneğin, (yapabileceğim) giriş oluşturulacak kullanıcının nesneye açmış ama sonra sayfa yükler arasındaki nesneyi yeniden oluşturmak tutmak zorunda kalmamak için yere alımı için saklanır.

Bunun için en iyi çözüm nedir? Ben Memcache bir göz yaşadım, ama bir üçüncü parti modül olmak ile ben web barındırma bu vesileyle yüklemek olamaz. Benim durumumda, benim alternatifleri ve / veya en iyi uygulamalar nelerdir?

Şimdiden teşekkürler.

2 Cevap

Ben veritabanı değil, PHP nesne kendisinden alınan verileri önbelleğe için genellikle daha inanıyorum. Her iki şekilde de, APC, Memcache veya XCache bunu saklamak için bir yol olacaktır.

Önbelleğe alma gereksinimi tüm kullanıcı / üye nesnesini, cache it in the user's session için en iyi bahis hakkında ise. Kullanıcı çevrimdışı olduğunda nesneyi gerek yok çünkü; SignOut veya oturum zaman aşımı tüm çöp toplama şeyler yapacağız. Hatta daha fazla hız ihtiyacı varsa, oturum saklama arkaplanı için bir çözüm önbellekleme (yani APC, Memcache, vb) kullanabilirsiniz.

Eğer bir ORM kullanıyorsanız, doğrudan ORM nesne, hatta profil güncellemesi amaçlar için yeniden getirmesi gerekmez bu şekilde önbelleğe.