Yarma 20 milyon kayıt veritabanı

3 Cevap php

Ben 20 milyon kayıtları bir ABD şirketi veritabanı var. Öncelikle büyük bir RAM veritabanı sunucusu için hiçbir bütçe değildir. Ben de parçalar, Devlet tarafından gruplandırılmış 4 parçaya db bölmek zorunda gidiyorum düşünüyorum.

Benim soru nasıl PHP ile bu işlemek için en iyi yolu, ben kullanıcıların sorgu Devlet'in almak düşünüyorum ve daha sonra ilgili db işaret edilmektedir? Herhangi bir düşünce?

3 Cevap

Sana MySQL partitioning bakmak gerektiğini düşünüyorum

Eğer Sharding düşünebilirsiniz gibi geliyor.

Emin değil veri erişimi için bir ORM kullanıyor, ama bazıları Sharding destek. Burada PHP ve MySQL için Sharding üzerine bazı bilgiler:

http://highscalability.com/database-sharding-netlog-mysql-and-php

sadece fark - link son url gerçek makaleye eksik burada ... deneyin: http://www.jurriaanpersyn.com/archives/2009/02/12/database-sharding-at-netlog-with-mysql-and-php/

Tüm bu işlemler için PHP gerekmez. Belki SQL kodu oluşturmak için. Bu yeni içine orijinal tablolardan verileri kopyalamak, SQL komut yapmak daha iyidir. Henüz onlara aşina değilseniz ... "SEÇ GİBİ ... TABLO OLUŞTURMA" "... SELECT ... INSERT" ve bakın.

MySQL> = 5.1 varsa, o zaman herhangi bir istek sadece 1 bölüm vurur böylece tablo bölümleme deneyin.

  • Kullanıcıların sadece 1 durumuyla ilgili bilgi gerekiyorsa, devlet tarafından bu bölüm. Sizin için havai çalışma olmadan bölümleri bir sürü neden olabilir. Kullanıcılar böylece yalnızca belirli bir zaman Webalizer içinde aylık grafikler gibi çerçeve, ay bölüm ve görebilirsiniz.

Ayrıca agrega tablolar oluşturmayı düşünün. Bana ayrıntılı bakalım: veri ambarlarında metrics ve attributes arasında bir ayrım vardır.

  • Bir attribute where söyleyen bir sütun, when, what, what kind of.
  • A metric anlatır how much, how many.

Bir agrega tablo ayrıntı az düzeyde olan: az nitelikler (coğrafi bilgi veya herhangi bir ürün bilgisi), ya da bazı adımlar yerine tarihi yerine şehir + devlet, yıl-ay tam tablosunda üst nitelikleri (sadece devlet ya ve vb.)

Ve son: kullanıcıların really detailed eski verileri gerekir emin olun. Verilerin bazıları birkaç yıl içinde alakasız olur. Web sitelerinin çoğunu değiştirmek yana Örneğin, web sitesi yönlendirmeleri, 1,5-2 yıl sonra hiçbir anlamı yok. 2-yıl-eski web sitesi trafik verileri günlük / aylık grafikler sadece bir sayı olabilir.