(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.)?
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.
sumber
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.
sumber
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)
sumber
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.
sumber