Php

2016-04-06 21 views
0

içinde birden çok sayfa için büyük veri ile çalışmak nasıl Bir sorunum var ve aradıktan sonra ben cevabı bulamıyorum. Ayrıca, aradığım şey için ne iyi bir arama terimi olacağından da emin değilim. Beni şimdiden affet.Php

Sorunum basit ve de değil. MongoDB'den çok miktarda kayıt/belge arayan halka açık olmayan bir web sitem var. Daha sonra, bir grafik/grafik yapmak için aradığım bilgileri dışarda tutuyorum. Sorun şu ki, bu verileri işlemek için en iyi uygulamayı anlayamıyorum. Veritabanından yapılan arama, sayfanın çekmesi gereken kayıt sayısı nedeniyle pahalıdır, bu yüzden daha iyi bir yol olması gerektiğini düşünürdüm.

Şu anda, her sayfa mongo veritabanından bilgi çekmek için mongodb php bağlayıcısını kullanan veritabanı sınıfını çağırır. Bununla birlikte, her sayfa sınıfı yeniden yaratır ve aynı bilgileri tekrar çeker. Bir sayfadan daha fazla talep için bu bilgileri nasıl kalıcı hale getirebilirim?

Bir oturum değişkeni kullanmanın güvenli mi yoksa ilk etapta bile kullanıp kullanamayacağını bilmiyorum. Global (ler) de bana doğru cevap olmamak gibi görünüyor. Web sitesi durumsalsa, sadece sınıfı kullanıp etrafından dolaştırırdım, ancak maalesef web sayfaları vatansız. Bu sorunu çözmemde yardımcı olabilecek belgeler var mı? Ya da biri daha önce aynı konuyla karşılaştı ve çözmemde bana yardımcı olabilir.

"Php'de veriyi kalıcı hale getirme" konusunu aradığım site php.org sitesinden biridir ve motorun bellek kullanımını gerçekten izlemediği için veriyi kalıcı hale getirmekten kaçınmanız gerektiğini belirtir. Bunun diğer öğeleri. Öyleyse, daha sonra bir sayfa isteği için daha uzun sürecek bir bellek elde edersiniz, bu nedenle her istek için büyük miktarlarda veri aramak zorunda kalmazsınız? http://php.net/manual/en/internals2.memory.persistence.php

Bir kez daha, doğru terimi aradığımı tam olarak bilmiyorum ve eğer aramalarımda doğru şartları kullanmama ihtimalim varsa, lütfen bana bildirin. Çünkü gerçekten soruları çoğaltmaktan kaçınıyorum.

Sorunuzun

cevap

1

cevabı "önbelleğe alma" olacağını şimdiden teşekkürler. Dosya tabanlı bir önbellek (sonucu bir dosyada saklayın) veya Memcached gibi bir bellek tabanlı önbellek kullanabilirsiniz. Örneğin, sonuç bir dizi ise, seri hale getirebilir/json_encode yapabilir ve sonuçları kaydedebilirsiniz.

+0

yep, yolda da bana yardımcı olacak bir web sitesi buldu. http://www.xeweb.net/2010/01/15/simple-php-caching/ – Caperneoignis

+0

Teşekkürler! Cevabınızı birkaç kabul edebilirim. Her zaman için memcached'ın ne olduğunu merak ettim. Bunu daha önce PHP'de görmüştüm. – Caperneoignis