2010-10-18 17 views
5

MySQL ile PHP'de geliştirilmiş bir web sitemiz var ve bazen trafik arttıkça sorunlarla karşılaşıyoruz. Siteyi neredeyse tüm isteklere göre daha fazla istekler doğrultusunda optimize ettik ancak yine de yoğun saatlerde problemlerle karşılaştık. ArkadaşlarımınPerformansı iyileştirmek için PHP web sitemi bir belge veritabanıyla yeniden oluşturmalı mıyım?

Bir performansını artırmak için arka uç olarak HBase/MongoDB kullanarak siteyi yeniden önerir. Ayrıca, eğer yeniden inşa edersek, bulut hizmetlerine kolaylıkla geçebileceğimizi de ileri sürüyor. Ama tüm şeyi öğrenmemiz ve yeniden geliştirmemiz gerekiyor.

Bunu yapmak daha iyi bir fikir midir? yapmak

+2

Profil oluşturma dışında herhangi bir şey öneren herhangi bir ipucu yoktur. Herhangi bir ücret karşılığında "danışman" dan kaçının. Sitenizi profillediniz mi? Ne tür bir sunucu üzerinde çalışıyor? –

+0

Web sitemi şu ana kadar izlemedik. Bazı optimizasyon ipuçlarını takip ettik. Lütfen bana profillerini öner. Trafik arttığında – Chris

+0

- daha spesifik olabilir misiniz? –

cevap

5

ilk şey darboğaz olduğunu belirlemek için web uygulaması profil etmektir. kesinlikle var veritabanına sorgularsa

, MongoDB ile daha sonra değiştirilmesi MySQL iyi bir fikir olabilir, ama belge veritabanları ilişkisel olanlar için farklı bir şekilde çalışır ve sorun işlevselliği bazı türdeki taşıma olabilir. Eğer mongo'yu denemeye karar verirseniz, prototipi erken ve sık sık yapın, çünkü hiçbir garson olmadığı için sizin için daha hızlı olacaktır. ölçeklenebilirlik gerçekten sizin için bir sorun ise

, o zaman neden google app motoru gibi bulut tabanlı bir web mimarisine düz atlamaz. Bu java veya python ve belge veritabanı (bigtable) tabanlı, ancak baştan itibaren ölçeklenebilir bir "bulut" mimarisine zorlar.

bir diğer seçenek, (memcache ile) önbelleğe tanıtmak (veya optimize) için - bu nedenle daha az çaba gerektirir başvurunuzda az mimari etki yaratacaktır.

+0

LAMP kullanıyoruz. Web sitemi şu ana kadar izlemedik. Bazı optimizasyon ipuçlarını takip ettik. Lütfen bana profillerini öner. – Chris

+0

Daha önce herhangi bir LAMP sistemini profillemeye çalışmamıştım, belki de taşma üzerine başka bir soru sormuyorum? Muhtemelen apache, mysql, sunucunun CPU'su, sunucunun ağ erişimi vb. Için farklı araçlara ihtiyaç duyacaksınız. –

+0

Ve "problemler" ile ne demek istediğine bağlı olarak, belki de bir tarayıcıdan, örneğin bir tarayıcıdan profil çıkarmanız gerekir. +1 to shrapnel –

0

çok orada basit MySQL ölçeklenebilirlik seçenekleri vardır. Geriye "karanlık günlerde", DB'de adanmış donanımı atacağız, daha yakın zamanda kümelenme mümkün oldu. Kullanabileceğiniz MySQL tabanlı bulut tipi çözümler de var. Örneğin, Amazon'un RDS'si, MySQL ile aynı komutlarla çalışmayı ve aynı zamanda kolay bir dönüşüm olduğunu iddia ediyor.

tüm bu inmek önce, indeksleme ve profilleme, optimize öneriyoruz. Ben buluta gitmeye gerek kalmadan bir günde 1 milyon + uniques içeren PHP/MySQL CMS tabanlı siteleri işletiyorum. Kod anahtardır.

+0

Daha fazla donanım atmak yine de iyi bir çözüm olabilir. – TTT

+0

Bu yetersizlik için harika bir çözüm - anlaşılan. –

İlgili konular