Büyük MySQL tabloları

oy
3

Ben geliştiriyorum bir web uygulaması için, ben kayıtların çok sayıda saklamamız gerekir. Her bir kayıt, bir birincil anahtar ve tek bir (kısa ish) dize değeri oluşur. Ben mevcut 100GB depolama hakkında olmasını bekliyoruz ve hepsini kullanabilmek için istiyorum.

kayıtları eklenen silinmiş ve sıkça okudum ve MySQL veritabanı kullanmalıdır edilecektir. Veri bütünlüğü çok önemli değildir, ancak performans. Hangi sorunlar ve tuzaklar ben karşılaşma olasılığı yüksek olan ve depolama motoru iyi görevine uygun olurdu?

Teşekkür ederiz, J

Oluştur 09/12/2008 saat 20:58
kaynak kullanıcı
Diğer dillerde...                            


6 cevaplar

oy
5

Eğer veritabanı bütün tablo yazma kilitli almaz emin olmalıyız yazmaya karşı ağır olacak demek beri ne olursa olsun çözümü kullanın. Bu, bazı ileri sürmüşlerdir MyISAM, dışladı. MyISAM bir güncelleme tabloyu kilitlemek, silmek veya ekleyecektir. Bu tablodan okumak ister herhangi bir istemci yazma bitmesini beklemek zorunda kalacak demektir. INSERT DÜŞÜK ÖNCELİK :-) masanın kilit etrafında olsa muhtemelen bazı kesmek yapar YOKSAY neyi bilmem

sadece MySQL kullanmanız gerekiyorsa, Yazma üzerinde kilidi yok InnoDB, isteyeceksiniz. Ben MySQL vakum en InnoDB'nin tabloları (InnoDB'nin PostgreSQL gibi MVCC ve böylece temizlemek gerekiyor) nasıl yaptığını bilmiyorum ... ama sen güncelleştirmeleri veya silmeleri çok yapıyoruz eğer bunu dikkate gerekecek.

Cevap 25/02/2009 saat 22:23
kaynak kullanıcı

oy
3

Hepsi senin uygulama oluşturuyor okuma / yazma desenini bağlıdır ve doğruluk düzeyi almak istiyorum. Gerçekten bütün son eklenen satırlar hemen kullanılabilir olması umursamazsak Exemple için, INSERT seçer yardımcı olabilir düşük öncelikli YOKSAY kullanmayı düşünün. Metin boyutu nispeten küçük ise, çok indeksleme yardımcı ve uygulama güncellemeleri çok oluşturursa SELECTleri süresini azaltacaktır sabit CHAR türünü kullanabilir, tek satır olduğunda kilit sağlar InnoDB depolama motorunu tercih edeceksiniz güncellenmesi (MyISAM tüm masaya vs). Öte yandan, onun daha fazla CPU yoğun ise işlemleri kullanmak ve güncelleme deseni nispeten küçük olduğundan, MyISAM kullanarak düşünmüyoruz eğer öyleyse

Cevap 10/12/2008 saat 17:07
kaynak kullanıcı

oy
1

Eğer indeksleme kullanıyorsanız (ve olmasanız bile) sorunlarla ölçekleme karşılaşabilir. Sen bu etkileri azaltmak için bölümlendirme yapabilirsiniz.

Kendi projede, bütünlük çok önemli değil ama performans olarak iyi. Yaptıklarımız, tüm işlemsel gereksinimleri dinlenmek disk senkronizasyonu gereksinimleri dinlenmek ve toplu ekler taahhüt ve biz gerçekten bizim yazma hızları gelişmiş oldu.

Ayrıca, ayarlamak için hafıza boyutları kendi testler yapmak emin olun. Ben MySQL boyutunu yapılandırabilirsiniz hangi önbelleklere birkaç farklı tipleri vardır inanıyoruz.

Cevap 09/12/2008 saat 21:05
kaynak kullanıcı

oy
0

Sen "shortish dizesi" masa uzunluğu satırları belirlemiştir böylece sabit bir uzunluk sütununda ise daha iyi uzakta. MyISAM ile MySQL sonra sizin için oldukça verimli çalışacaktır. Anahtar Arabelleğinin fazla bellek olabildiğince tahsis bellekte endeksinin kadar ki. Amacınız diske tek bir rastgele erişim bir satır almak için olmalıdır - bu verilen verilerin 100GB ve 8GB bellek daha iyi yapamaz. Bu rastgele bir diskin yapabileceği erişen hepsi bu, çünkü saniyede birkaç yüz tür sorguları daha elde etmek beklememelisiniz.

Sen (tarif benim MySQL özel depolama motoru ilginizi çekebilir burada ). Başvurunuzun profilim motoru için optimize edilmiş tam olarak ne olmamasına rağmen, MyISAM farklı belleği yönetir.

Cevap 21/03/2009 saat 14:47
kaynak kullanıcı

oy
0

Büyük MySQL sorguları benim Dört Çekirdekli / 8GB Ram DB Sunucu kazasında yapmak ...

(Eğer gücün varsa SQL Server) çözümü PostgreSQL kullanmaktır

Cevap 09/12/2008 saat 21:20
kaynak kullanıcı

oy
0

Kesinlikle depolama motoru için MyISAM kullanmak istiyorum. Ama sen 100 GB beklemek ve sadece arkadaşlar bir hafta dize değerini içerecektir söylüyorlar. Kesinlikle kimlik / birincil anahtar için 64-bit int kullanmak istiyorum.

Ama esas soru budur. web sitesinden oturum bilgilerini depolamak için bu kullanıyorsunuz? Eğer MySQL Memcache'ı yerine kullanmak istediğiniz istediğiniz Eğer öyleyse.

Cevap 09/12/2008 saat 21:16
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more