Bir veritabanı bağlantı nesnesi php dünya (afaik ac yapı ya da nesne) dışında büyülü bir şey, yani bir kaynaktır. Eğer bir kaynak serialize ve oturumuna bir değişken depolama (aynı şey serialize();
yapar) seri hale gelir olamaz.
php diğer istekleri ile hiçbir kaynakları paylaşan, yani bir "paylaşılan bir şey" doğa vardır. 2 kişi, hem kullanıcı, hem A, ya da bir kullanıcı A ve bir kullanıcı B, bilmek hiçbir şekilde arasında olabilir. her isteği kapsüllü ve iki istekleri arasında mantıksal bir bağlantı yapmak için sadece çok sınırlı "geçici çözüm" oturumları olmasıdır. her şey (veritabanları, dosyalar, memcached) dışarıdan yakaladı olmalı, bu yüzden artık php sorun değil.
bu nedenle, istekleri arasındaki paylaşımı veritabanı kaynakları olmak istemedim. her kendi mysql_connect isteyin. ben bu ilk etapta php topluluğu ile popüler temel nedeni yapma mysql olduğunu varsayalım. mysql bağlanır, diğer rdbms daha a lot daha hızlı, iyi bir uyum oldu bu yüzden daha az özellik (hiçbir işlem yok, manzarası, tetik yok, hiçbir şey) vardı çünkü.
mysql_pconnect did bağlantısı (ama farklı bir düzeyde) havuzu, ama ya bir sihirli değnek değildir. bugünlerde yine PDO kullanmalısınız (ve PDO afaik bunu desteklemiyor).
Uygulama yavaş ise, sorunlar başka yalan.
my advice:
- Yapmanız düşünüyorum ne olursa olsun ... sen bağlantıları paylaşmak, böylece bir göz değil. (her sorgu için bağlantı oluşturursa) aslında, uygulama çünkü hile yavaş olabilir. Bu özelliği kaldırmak ve yeniden test edin.
- sorguları kontrol (
EXPLAIN SELECT * FROM foo;
)
- Lütfen endeksleri sağ olsun
- önbelleğe alma kullanmayın (örn. memcached)
The most common performance problem I see is people who think there's a most-common performance problem that they should be looking for, instead of measuring to find out what their actual performance problem actually is.
- cary millsap