Ben birden fazla veritabanı bağlantıları ile performans konusunda endişe olmalıdır?

3 Cevap php

I have a PHP app that is running on an Apache server with MySQL databases. Based on the subdomain that users access, I am connecting them to a database (sub1.domain.com connects to database_sub1 and sub2.domain.com connects to database_sub2). Right now there are 10 subdomain-database combos, but that number could potentially grow to well over 100.

Yani, bu kötü bir şey mi?

Benim durum göz önüne alındığında, gitmek için yolu mysql_pconnect nedir?

Teşekkürler, ve daha fazla bilgi yararlı olacaktır varsa bana bildirin lütfen.

Şaka

3 Cevap

Bu yazdığınız bir uygulama mı?

Eğer öyleyse, bir bakım açısından bu bir kabusa dönüşebilir.

Eğer program değiştirmek ve veritabanı değiştirmek gerekiyor ne olur?

Eğer acı bir dünyada kendinizi bulabilirsiniz yeni şema için tüm veritabanları için değişiklikler yapmak için bir tatlı göç aracı yoksa.

Ben şimdi bu projeye çok uzakta olabilir farkındayım, ama biraz ek ilişki etki (şirketler / kullanıcılar) ayırt şema eklenmiş olsaydı, çok az ek yük ile bir veritabanı kapalı hepsini çalıştırabilir.

Performansı gerçekten bir sorun haline gelirse (Read this) Eğer Kümeleme ya da başka bir şık çözüm uygulayabilirsiniz, ama en azından korumak için 100 + veritabanları olmayacaktır.

Bu kısmen sizin yapılandırma kalanı bağlıdır, ama sürece her bir işlem sadece bir bağlantı karıştırmak gibi daha sonra veritabanı istemci kod beklediğiniz gibi yapmalıdır - performansını artırmak için tek bir veritabanı ile ama daha olanakları ile yaklaşık olarak aynı ağ bant genişliği sınırına kadar veritabanı sunucuları,.

Birden fazla bağlantı, bir işlemde katılırsa, o zaman muhtemelen bir XA uyumlu hareket yöneticisi gerekir ve bu genellikle önemli bir performans yükü taşırlar.

Hayır, bu kötü bir şey değil.

Oldukça toplam paralel bağlantı sayısı meselesi. Bu (default, MySQL 5.1.15 beri 151 bulunuyor) mysql ayarlarında "max_connections" ile tanımlanabilir, ve platformda (yani 2048

Ben bir yürütme (birbiri ardına, paralel değil) 400 + veritabanları bağlayan bir script yaptı ve mysql + php (anlamlı bellek sızıntıları, hiçbir büyük havai) çok iyi ele bulundu. Yani ben senin yapılandırmasında hiçbir sorun olacağını varsayabiliriz.

Ve, finnaly - başına veritabanı bağlayan önemli bir yükü varsa mysql_pconnect genellikle web gelişimini iyi düşünmek değil. Ben pconnect kullanımını sınırlı olduğunu düşünüyorum vb komut bekleyen, max_connections, kilitler ile sorunları önlemek için dikkatli bir şekilde gerçekten yönetmek zorunda (yani Cron her ikinci veya böyle bir şey koşucu)