32 bit veritabanı mı yoksa 64 bit veritabanı mı yüklemeliyim?


16

(64 bit ve 32 bit işletim sistemi / uygulamalar hakkında çok şey okudum, ancak bu soru özellikle veritabanları ile ilgili.)

32-bit veritabanlarına karşı 32-bit ve artılarını ve eksilerini anlamaya çalışıyorum ve 64-bit yüklemeleri kullanmak mantıklı olan koşullar altında.

İlgilendiğim veritabanı sistemleri şunlardır: SQL Server 2008, MySQL ve PostgreSQL 9.0.

PostgreSQL'in 9.0 öncesi sürümlerinin sadece Windows için 32-bit olarak geldiğini ve 64-bit Windows'ta 32-bit PostgreSQL'i çalıştırmayla ilgili bu makalede bazı karışıklıkları giderdim, ancak daha fazla bilgi arıyorum.

Ne zaman 64-bit veritabanları (yani veritabanı boyutu / disk alanı, kullanılabilir sistem belleği, yararlandığı bilinen veri sernaryosu türleri, hangi veritabanı motoru kullanılıyor, vb.) Kullanmaktan yararlanabilirim?

Yanıtlar:


20

hangi koşullar altında 64 bit kurulumları kullanmak mantıklıdır.

Aptal olmak dışında her şey altında. Maalesef 64 bit sunucuya 32 bit veritabanı yüklemesi ne işe yarar? Ve - hayal - SERVER 2008R2 SADECE 64 bit olarak mevcuttur.

- Bugün - bir şansınız varsa 32 bit SQL Server sürümünü yüklemenin mantıklı olduğu bir senaryo yoktur.

Veritabanları bu konuda özeldir - gerektiğinde önbellek olarak çok fazla bellek kullanmak isterler. Yetersiz 2gb / 3gb'den çok daha fazlası 32 bitlik bir işlem verebilir. PAE aynı değil. Sınırları görmezden gelse bile, PAE belleği bir SQL Server memory için gerçek belleğe eşit değildir´ (sadece bir şey için kullanılır - db sayfalarını önbelleğe alır).

32 bit işletim sistemi - aynı seviyede. 32 bit işletim sistemi kurmak modern donanım üzerinde hiçbir anlam ifade etmiyor.


4
+1 Amin Kardeşim !!
DaniSQL

6
32 bit işletim sistemi ve uygulamaların yanı sıra, daha az bellek alanı gibi bazı küçük avantajlar da vardır.
JohnB

@TomTom: SQL Server 2008 R2, 32 bit (biraz aşağı kaydırın) olarak kullanılabilir msdn.microsoft.com/en-us/library/ms143506.aspx
JohnB

1
Evet, daha az yer kaplar. SADLY özellikle ilgisiz veritabanları için. Bir veritabanı sözcük değildir. Çoğu kurulumda LOTS veriyle ilgilenir, bu nedenle LOTS RAM'e erişmek mantıklıdır.
TomTom

1
... Bir sürü koç bir süreçte 4GB'tan fazla mı? Çok işlemcili sunucunun tamamı için kaç SQL sunucusu sağlamadığını biliyor musunuz? 64bit işletim sistemi ve SQL sunucusuna sahip olmanın kötü bir fikir olduğunu iddia etmiyorum, ancak / hiç / önemli olmayan yapılandırmaların bol olduğunu söyleyeceğim.
Evan Carroll

6

PostgreSQL, 64 bitlik bir yapıya sahip olmanın iki ana yolundan yararlanır. İlk olarak, 64 bite sığabilecek veri türleri (daha büyük tamsayılar ve zaman damgası türleri) işaretçiler kullanmak yerine doğrudan kayıtlarda daha verimli bir şekilde geçirilebilir. İkincisi, veritabanının ayrılmış arabellek önbelleği için daha fazla bellek ayırmak mümkündür. Bu ayarlanabilir (paylaşılan_buffers) üzerindeki azalan getiri noktası genellikle 8GB civarındadır, ancak 32 bit sistemde <2GB ile sınırlı olacaktır.

Ancak, Windows kullanıyorsanız PostgreSQL, paylaşılan belleği UNIX-ish platformlarında olduğu gibi verimli bir şekilde işlemez. Dönüşün azaldığı nokta, 32 bit veya 64 bit PostgreSQL derlemesine sahip olsanız da genellikle veritabanı için <= 512 MB ayrılmış bellek olur. Geri kalanını işletim sistemi önbelleği için veritabanına ayırmak yerine bırakmak daha iyi olacaktır. Buna göre, Windows'ta PostgreSQL ile 32 ila 64 bit arasında bir performans kazancı gerçekten yok; normalde daha fazla RAM'e sahip olmanın getireceği ana ayar gerçekten de çok iyi kullanmıyor.


1
Bazı kişilerin, sunucunun bellekteki daha fazla miktarda veriyi sıralamasına olanak tanıyan work_mem için çok büyük değerler ayarlayarak 64 bit Windows PostgreSQL'den yarar gördüğünü bildirdi.
Greg Smith

4

MySQL'i 64-bit mimaride çalıştırıyorum çünkü iş parçacığı başına 4GB'den fazla belleği en verimli şekilde kullanmasını istiyorum. Genel olarak, bu tüm veritabanları için geçerli olmalıdır.

Mimariler arasındaki birincil farklılıklardan biri, adresleme işleminin artırılması, daha fazla bellek işlemeye izin verir. Intel'in Fiziksel Adres Uzantısı 4GB'tan daha fazla adreslemeye izin verirken , yine de iş parçacığı başına 4GB ile sınırlıdır. PAE maksimum 64 GB'a kadar izin verir.

Vikipedi 64-bit ve 32-bit karşılaştırması daha düşük seviyeli detaylar içermektedir.


2
İşlem başına, iş parçacığı başına değil. İş parçacıkları aynı bellek alanını paylaşır.
Evan Carroll

3

Yalnızca 64 bit MySQL istemci kitaplıklarınız varsa, bunları 32 bit kodla birbirine bağlamaya çalıştığınızda "yanlış mimari" hataları alacağınızı unutmayın. Python bağlamaları ("pip install MySQL-python") yüklemeye çalıştığımda bu bana oldu.

Bir 32-bit MySQL istemcisi ile 64-bit MySQL sunucusu kullanılabilir ve MySQL Topluluk Sunucusu hem 32-bit hem de 64-bit istemci kütüphanesi sürümleri içermemesi utanç verici. Doğru çözüm, ek 32 bit MySQL istemci kütüphaneleri yüklemektir. Ancak, MySQL'i kurmanın en kolay yolu MySQL Topluluk Sunucusu ikili indirmesi gibi göründüğünden ve 64 bit yükleyicinin yalnızca 64 bit istemci kitaplıklarıyla birlikte geldiği göz önüne alındığında, en az dirençli yol sadece 32 bit yükleyiciyi indirmektir. .

(tüm bunlar, her zaman çok küçük veri kümeleri kullanacağınızı varsayarsak)


2

Pek çok şey için, 32 bit bir kazançtır (adres alanı ile yaşayabildiğiniz sürece), ancak DB, küçük veritabanlarının bile 64 bit'te gerçek bir destek alabileceği bir şeydir. Verilmiş, MS SQL sunucusu hakkında bir şey bilmiyorum, ama karşılaştırmalar gördüm (örneğin, Sun 5 (eski 64 bit Sun masaüstü)), 32 bit genellikle 30 olan mysql dışında biraz daha hızlıydı % 64 daha hızlı.


2
"Pek çok şey için, 32 bit bir kazançtır" - Örnekler ??
Chris S

1
32 bit veritabanı 64 bit daha hızlı olacağını hayal edebiliyorum tek durum, kod uygun optimizasyonlar ile derlenmemiş olmasıdır. İş yazılımı ile ilgili olarak, veritabanları muhtemelen 64 bitin sunduğu özelliklerden en iyi şekilde yararlanabilecek olan şeydir.
John Gardeniers

1
Peki, RISC 32> 64 geçiş döneminde çok sayıda kriter ve en azından x86'nın başında, adres alanına ihtiyaç duymadıkça ve db'nin 64 bit'e herhangi bir faydası varsa çok az gösterdi. Ben de inanmak istemedim ve bugün x86 için bahse girerim, 64 bit her zaman daha hızlıdır (sadece bu i32 komut setinden kaçmanız nedeniyle). Anandtech.com, gözbebekleriniz kanamayana kadar kriterlere sahiptir. Unutmayın: VERİLERİ GÖSTER.
Ronald Pottol

1
Her şey eşit olduğunda, 64 bit için düşünebileceğim ana dezavantaj, eşdeğer 32 bit dinamik veri yapısından (yani bağlantılı listeler, ağaçlar) daha fazla önbellek alanı kaplayacak daha büyük işaretçilerle (64 bit). ...). Bu, kullanılabilir önbellek miktarını azaltır. Bu belirti ana hafızada da devam eder. Yalnızca 64 Mb RAM içeren 64 bit Debian sunucum, benzer bir kurulum 32 bit sunucudan daha fazla takas kullanır ve daha az uygulama çalıştırır.
sybreon

3
@sybreon: Sanırım ihtiyacın olursa 128mb'lik eski bir yerim var!
JohnB
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.