Birleştirme tablolarını kullanabilirsiniz, ancak bunlar 4.x sürümlerinden daha eskidir. Uygulamanız manuel olarak bölümlendiğinde, a) gerçekten eski bir sürüm çalıştırıyorsanız veya b) orijinal geliştirici tablo bölümlerinden haberdar değildi.
Kısacası 5.1+ çalıştırıyorsanız, mysql'in bu bölümlemeyi sizin için yapmasına izin verebilirsiniz. Bkz.
Http://dev.mysql.com/doc/refman/5.1/en/partitioning.html 5.5 kullanıyorsanız, bazı farklılıklar bulacağınız için bu dokümanları kontrol etmelisiniz.
Bölümlemenin birçok avantajı vardır. Bununla birlikte, gerçekten eldeki veri kümesine, erişim kalıplarına ve nasıl endeksleneceğine bağlıdır. Ayrıca, aşağıdaki yorumların mysql 5+ bölümleme bağlamında olduğunu unutmayın, eski mysql Birleştirme tabloları DEĞİL; her ne kadar bazen bölümler açısından tartışılsa da.
Bazı örnekler:
- Sık erişilen arama anahtarına dayalı düz kovalama (veya karma). Eğer hemen hemen her zaman birincil veya başka bir benzersiz anahtar ile arıyorsanız o zaman mysql arama alanı kaç bölüm var bir faktör tarafından kesebilir. Bununla birlikte, bir anahtarla bölümleme yapıp daha sonra başka bir anahtarla sık sık arama yaptığınızda bunun zararlı olabileceğini unutmayın. Bir anahtarla arama yaparsanız veriler tarafından bölümlenmezse, aramalarda DAHA FAZLA arama yapmalıdır (her bölüm için bir tane, b / c açıkçası, verilerin nerede olduğunu bilmiyor)
- Tarihe göre büyüyen geçici bir kayıt kümeniz olduğunda ve bir önceki ay periyodik olarak budanmış olduğunuzda durumları göz önünde bulundurun. Tarihe göre bölümleme yapıyorsanız, ne kadar büyük olursa olsun, bir tabloyu düşürmek kadar hızlı olan bir bölümü bırakmanız yeterlidir. Böyle bir tabloyu tarihlere göre bulacağınız takdirde, her bir satırın silindiği bir veya daha fazla DELETE sorgusu yayınlamanız gerekirdi. Bunun dezavantajı, mysql'nin bu senaryoda muhasebeleştirdiğiniz maksimum tarihe ulaştığınızda otomatik olarak yeni bölümler oluşturmamasıdır; bölümleri gerektiği gibi eklemek için parçanıza ek bakım komut dosyaları eklemeniz gerekir.
- Myisam kontrolleri ve kurtarma işlemleri kullanıyorsanız çok daha hızlıdır. 100G'lik bir myisam tablosu düşünün. Çökmüş bir tabloyu kurtarmak istiyorsanız, en az 100G yedek disk alanına ihtiyacınız olacaktır. Eşit büyüklükte 10 farklı parçaya bölünmüşse, sadece 10G alana ihtiyacınız var (ve hızlı kurtarma için daha az key_sort_buffer bellek); ancak her bölüm için bir yineleme yapmanız gerekir.
Özetle, bölümleme tablolarının genel yaklaşımı birçok fayda sağlayabilir. Ancak, erişim kalıplarına ve tam olarak ne kadar bölüştüğünüze bakmadan körü körüne uygulanacak sihirli bir mermi değildir .
İstenen bölümlendirmenin uygulamaya çok özel olduğu ve mantığın uygulama katmanında oturması için daha uygun olduğu durumları hayal edebiliyorum. Bununla birlikte, düz modül 10 açıklamanız göz önüne alındığında, bu böyle bir durum gibi görünmemektedir.
DÜZENLE
Açıklamamı yazarken tablonuzun 100 bin satır olduğunu belirtmişsiniz. Tablonuzun tüm şeması ve ortalama satır uzunluğu ile kesin olarak söylemek zor, ancak genel olarak mütevazı donanım için bile orta büyüklükte geliyor. Aynı zamanda, şu anda veya öngörülebilir gelecekte sorunlara neden olmazsa, zaman harcamayın ve değiştirerek risk getirmeyin.