PHP scripts by default are interpreted every time they are called by the http server, so every call initiates script parsing and probably compilation by the Zend Engine.
You can get rid of this bottleneck by using script caching, like APC. It keeps the once compiled PHP script in memory/on disk and uses it for all subsequent requests. Gains are often significant, especially in PHP apps created with sophisticated frameworks like ZF.
Varsayılan olarak her istek veritabanına bir bağlantı açılır, böylece veritabanı bağlantı havuzu veya kalıcı bağlantılar çeşit (her zaman http sunucu / php yapılandırmasına bağlı olarak, işe yaramaz olan) kullanmalısınız. Ben denedim hiç, ama belki veritabanı bağlantı kolları tutmak için memcache kullanmak için bir yolu var.
Onlar her istek üzerine kullanılan konum varsa da, oturum verileri tutmak için memcache kullanabilirsiniz. Onların kalıcılık önemli değildir ve memcache çok hızlı yapmanıza yardımcı olur.
Her isteği http sunucu tarafından işlenir ve bir PHP komut dosyası çalıştıran gerektiriyorsa, onun tercüman başlatıldı - asıl "sorun", bir SSI (sunucu tarafı içerir) yolu çalışır çünkü PHP, diğer çerçeveler biraz daha farklı çalışıyor olmasıdır ve komut dosyaları, yüklenen ayrıştırılır, derlenmiş ve çalıştırın. Bu arabaya biniyorlar motoru başlayan ve 10 metre oluyor mukayese edilebilir.
Diğer yol en web uygulama kendisini her zaman veritabanı bağlantıları paylaşımı ve tekrar çalışma zamanı başlatılıyor değil, kendi döngüsünde istekleri işleme olduğu, bir uygulama sunucusu yolu diyelim, olduğunu. Bu çözelti, daha düşük bir gecikme sağlar. Öte yandan bu zaten çalışan bir arabanın içinde olmak ve aynı 10 metre sürmek için kullanıyor mukayese edilebilir. ;)
Yukarıdaki önbelleğe / önderlemeyi ve havuzlama çözümler init yükünü azaltarak en iyisidir. PHP / MySQL rağmen hala bir RDBMS tabanlı bir çözümdür, ve BigTable neden iyi bir nedeni var, iyi, sadece büyük, kanatlı bir, kitlesel dağıtılan Hashtable (biraz basite indirgemek, biliyorum) - üzerinde okumak {[(0) }].