Haruskah saya menginstal basis data 32-bit atau basis data 64-bit?

16

(Saya sudah membaca banyak tentang OS / Aplikasi 64-bit versus 32-bit, tetapi pertanyaan ini secara khusus berkaitan dengan basis data.)

Saya mencoba untuk memahami pro dan kontra dari database 32-bit versus 64-bit, dan dalam kondisi apa mulai masuk akal untuk menggunakan instalasi 64-bit.

Sistem basis data yang saya minati adalah: SQL Server 2008, MySQL, dan PostgreSQL 9.0.

Saya telah membaca bahwa PostgreSQL versi pra-9.0 hanya datang dalam 32-bit untuk Windows, dan artikel ini tentang menjalankan PostgreSQL 32-bit pada Windows 64-bit membersihkan beberapa kebingungan saya, tetapi saya mencari info lebih lanjut.

Kapan saya akan mendapat manfaat dari menggunakan basis data 64-bit (yaitu ukuran basis data / ruang disk, memori sistem yang tersedia, jenis-jenis skenario data yang diketahui mendapat manfaat darinya, mesin basis data mana yang digunakan, dll.)?

JohnB
sumber

Jawaban:

20

dalam kondisi apa mulai masuk akal untuk menggunakan instalasi 64-bit.

Di bawah semua kecuali menjadi idiot. Maaf - apa gunanya menginstal basis data 32 bit pada server 64 bit? Dan - bayangkan - SERVER 2008R2 HANYA tersedia dalam 64 bit.

Ada - hari ini - tidak ada skenario di mana masuk akal untuk menginstal versi SQL Server 32 bit jika ada kesempatan.

Database khusus dalam hal ini - karena mereka ingin menggunakan banyak memori sebagai cache jika perlu. Lebih dari 2gb / 3gb yang sedikit, proses 32 bit dapat memberi mereka. PAE tidak sama. Bahkan mengabaikan batas, memori PAE tidak sama dengan memori nyata untuk SQL Server (hanya digunakan untuk SATU hal - caching halaman db).

OS 32 bit - berada di level yang sama. tidak masuk akal pada perangkat keras modern sama sekali untuk menginstal OS 32 bit.

TomTom
sumber
4
+1 Amin Brother !!
DaniSQL
6
Sejauh OS dan Aplikasi 32-bit, ada beberapa keuntungan kecil, seperti jejak memori yang lebih kecil.
JohnB
@TomTom: SQL Server 2008 R2 tersedia dalam 32-bit (gulir ke bawah sedikit) msdn.microsoft.com/en-us/library/ms143506.aspx
JohnB
1
Ya, tapak yang lebih kecil. SANGAT terutama untuk database yang tidak relevan. Database bukan kata. Ini berkaitan dengan - di bawah sebagian besar pemasangan - BANYAK data, sehingga mengakses BANYAK RAM masuk akal.
TomTom
1
... Banyak ram menjadi lebih dari 4GB dalam suatu proses? Anda tahu berapa banyak server SQL yang tidak menyediakan itu untuk seluruh server multi-diproses? Saya tidak berpendapat bahwa itu adalah ide yang buruk untuk memiliki OS 64bit, dan SQL server, tetapi saya akan mengatakan ada banyak konfigurasi di mana itu tidak masalah / sama sekali /.
Evan Carroll
6

PostgreSQL mendapat manfaat dari pengembangan 64-bit dalam dua cara utama. Pertama, tipe data yang dapat masuk ke dalam 64-bit (bilangan bulat yang lebih besar dan tipe timestamp terutama) dapat lebih efisien diteruskan langsung dalam register daripada menggunakan pointer. Kedua, dimungkinkan untuk mengalokasikan lebih banyak memori untuk cache buffer khusus database. Titik pengembalian yang berkurang pada merdu itu (shared_buffers) biasanya sekitar 8GB, tetapi akan terbatas pada <2GB pada sistem 32-bit.

Namun, jika Anda menggunakan Windows, PostgreSQL tidak menangani memori bersama seefisien pada platform UNIX-ish. Titik pengembalian yang berkurang umumnya berakhir dengan <= 512MB memori khusus untuk basis data apakah Anda memiliki PostgreSQL versi 32-bit atau 64-bit. Anda akan lebih baik meninggalkan sisanya untuk cache sistem operasi daripada mendedikasikannya ke database. Dengan demikian, sebenarnya tidak ada banyak peningkatan kinerja dari 32 hingga 64 bit dengan PostgreSQL di Windows; merdu utama yang biasanya akan mendapat manfaat dari memiliki lebih banyak RAM yang tersedia sebenarnya tidak memanfaatkannya dengan sangat baik.

Greg Smith
sumber
1
Perhatikan bahwa beberapa orang melaporkan melihat manfaat dari Windows PostgreSQL 64-bit dengan menetapkan nilai yang sangat besar untuk work_mem, yang memungkinkan server mengurutkan jumlah data yang lebih besar dalam memori.
Greg Smith
4

Saya menjalankan MySQL pada arsitektur 64-bit karena saya ingin mereka menggunakan secara efisien lebih dari 4GB memori per utas. Secara umum, ini harus berlaku untuk semua database.

Salah satu perbedaan utama antara arsitektur adalah peningkatan pengalamatan memungkinkan penanganan memori yang lebih besar. Sementara Ekstensi Alamat Fisik Intel memungkinkan pengalamatan lebih dari 4GB, masih terbatas hingga 4GB per utas. PAE memungkinkan hingga 64GB maksimum.

Wikipedia memiliki perbandingan 64-bit versus 32-bit, yang mencakup lebih banyak detail level rendah.

Warner
sumber
2
Ini per proses, bukan per utas. Utas berbagi ruang memori yang sama.
Evan Carroll
3

Perhatikan bahwa jika Anda hanya memiliki pustaka klien MySQL 64-bit, Anda akan mendapatkan kesalahan "arsitektur salah" ketika mencoba menautkannya bersama dengan kode 32-bit. Ini terjadi pada saya ketika saya mencoba menginstal python bindings ("pip install MySQL-python").

Orang dapat menggunakan server MySQL 64-bit dengan klien MySQL 32-bit dan sayang sekali bahwa MySQL Community Server tidak menyertakan versi perpustakaan klien 32-bit dan 64-bit. The benar solusi adalah dengan menginstal tambahan 32-bit perpustakaan MySQL client. Namun, karena cara termudah untuk menginstal MySQL tampaknya adalah pengunduhan biner MySQL Community Server , dan mengingat bahwa penginstal 64-bit hanya dilengkapi dengan pustaka klien 64-bit, jalur perlawanan paling tidak adalah dengan hanya mengunduh penginstal 32-bit. .

(semua ini, dengan asumsi bahwa Anda akan selalu menggunakan set data yang sangat kecil)

Amit Moscovich
sumber
2

Untuk banyak hal, 32 bit adalah kemenangan (selama Anda bisa hidup dengan ruang alamat), tetapi DB adalah satu hal di mana bahkan basis data kecil bisa mendapatkan dorongan nyata berjalan dalam 64 bit. Memang, saya tidak tahu apa-apa tentang MS SQL server, tapi saya telah melihat benchmark (misalnya, pada Sun 5 (lebih tua 64 bit desktop Sun), 32 bit umumnya sedikit lebih cepat, kecuali untuk mysql, yaitu 30 % lebih cepat dalam 64 bit.

Ronald Pottol
sumber
2
"Untuk banyak hal, 32 bit adalah kemenangan" - Contoh ??
Chris S
1
Satu-satunya kasus yang dapat saya bayangkan di mana database 32 bit akan lebih cepat dari 64 bit adalah jika kode belum dikompilasi dengan optimisasi yang sesuai. Sejauh perangkat lunak bisnis berjalan, basis data mungkin merupakan hal yang lebih baik daripada yang bisa memanfaatkan apa yang ditawarkan 64 bit.
John Gardeniers
1
Nah, sejumlah besar tolok ukur di era transisi RISC 32> 64, dan setidaknya x86 awal menunjukkan sedikit jika ada manfaatnya untuk 64 bit, kecuali jika Anda membutuhkan ruang alamat, dan db lakukan. Saya juga tidak ingin mempercayainya, dan saya bertaruh untuk x86 hari ini, 64 bit selalu lebih cepat (hanya karena Anda lolos dari set instruksi i32). Anandtech.com memiliki tolok ukur sampai bola mata Anda berdarah. Ingat: TAMPILKAN AKU DATA.
Ronald Pottol
1
Semua yang lain sama, kelemahan utama yang dapat saya pikirkan untuk 64-bit adalah dengan pointer yang lebih besar (64-bit), yang akan mengambil lebih banyak ruang memori cache daripada struktur data dinamis 32-bit yang setara (yaitu daftar yang ditautkan, pohon ...). Ini mengurangi jumlah memori cache yang tersedia. Gejala ini juga bertahan di memori utama. Server Debian 64-bit saya dengan hanya 64Mb RAM menggunakan lebih banyak swap dan menjalankan lebih sedikit aplikasi dibandingkan dengan server 32-bit setup serupa.
sybreon
3
@sybreon: Saya pikir saya punya 128MB tua yang tergeletak di sekitar jika Anda membutuhkannya!
JohnB