Devo installare un database a 32 bit o un database a 64 bit?


16

(Ho letto molto su OS / App a 64 bit contro 32 bit, ma questa domanda riguarda specificamente i database.)

Sto cercando di comprendere i pro e i contro dei database a 32 bit rispetto a quelli a 64 bit e, in particolare, a quali condizioni ha senso utilizzare le installazioni a 64 bit.

I sistemi di database che mi interessano sono: SQL Server 2008, MySQL e PostgreSQL 9.0.

Ho letto che le versioni pre-9.0 di PostgreSQL sono disponibili solo a 32 bit per Windows e questo articolo sull'esecuzione di PostgreSQL a 32 bit su Windows a 64 bit chiarisce un po 'della mia confusione, ma sto cercando ulteriori informazioni.

Quando trarrei beneficio dall'utilizzo di database a 64 bit (ad es. Dimensioni del database / spazio su disco, memoria di sistema disponibile, tipi di sernari di dati noti per trarne vantaggio, quale motore di database in uso, ecc.)?

Risposte:


20

a quali condizioni inizia a utilizzare le installazioni a 64 bit.

Sotto tutti tranne essere idiota. Spiacenti, a che serve installare un database a 32 bit su un server a 64 bit? E - immagina - SERVER 2008R2 è disponibile SOLO a 64 bit.

Oggi non esiste uno scenario in cui abbia senso installare una versione di SQL Server a 32 bit se ne ha una possibilità.

I database sono specifici in questo - in quanto desiderano utilizzare molta memoria come cache, se necessario. Molto più del magro 2 gb / 3 gb che un processo a 32 bit può dare loro. PAE non è la stessa. Anche ignorando i limiti, la memoria PAE non è uguale alla memoria reale per un SQL Server´ (viene utilizzata solo per UNA cosa: memorizzazione nella cache delle pagine db).

Sistema operativo a 32 bit: è allo stesso livello. non ha affatto senso sull'hardware moderno installare un sistema operativo a 32 bit.


4
+1 Amen Brother !!
DaniSQL,

6
Oltre al sistema operativo e alle app a 32 bit, ci sono alcuni piccoli vantaggi, come l'ingombro di memoria ridotto.
John B

@TomTom: SQL Server 2008 R2 è disponibile in 32-bit (scorrere verso il basso un po ') msdn.microsoft.com/en-us/library/ms143506.aspx
JohnB

1
Sì, ingombro ridotto. SADLY soprattutto per database irrilevanti. Un database non è una parola. Si occupa - con la maggior parte delle installazioni - MOLTI dati, quindi accedere a MOLTE RAM ha senso.
TomTom,

1
... Un sacco di RAM è più di 4 GB in un processo? Sai quanti server SQL non forniscono questo per l'intero server multi-elaborato? Non sto sostenendo che sia una cattiva idea avere un sistema operativo a 64 bit e un server SQL, ma dirò che ci sono molte configurazioni in cui non importa / affatto /.
Evan Carroll,

6

PostgreSQL trae vantaggio dall'avere una build a 64 bit in due modi principali. In primo luogo, i tipi di dati che possono adattarsi a 64 bit (principalmente numeri interi e timestamp più grandi) possono essere passati in modo più efficiente direttamente nei registri anziché utilizzare i puntatori. In secondo luogo, è possibile allocare più memoria per la cache buffer dedicata del database. Il punto di ritorni decrescenti su quel parametro sintonizzabile (shared_buffers) è in genere di circa 8 GB, ma sarà limitato a <2 GB su un sistema a 32 bit.

Tuttavia, se sei su Windows, PostgreSQL non gestisce la memoria condivisa in modo efficiente come su piattaforme UNIX. Il punto di ritorno decrescente finisce per essere <= 512 MB di memoria dedicata per il database, sia che si abbia una build di PostgreSQL a 32 o 64 bit. Farai meglio a lasciare il resto per la cache del sistema operativo anziché dedicarlo al database. Di conseguenza, con PostgreSQL su Windows non c'è davvero un grande aumento delle prestazioni da 32 a 64 bit; il principale parametro sintonizzabile che normalmente trarrebbe vantaggio dalla disponibilità di più RAM non lo utilizza in realtà molto bene.


1
Si noti che alcune persone hanno riferito di vedere un vantaggio di Windows PostgreSQL a 64 bit impostando valori molto grandi per work_mem, che consente al server di ordinare grandi quantità di dati in memoria.
Greg Smith,

4

Uso MySQL su un'architettura a 64 bit perché voglio che utilizzino in modo più efficiente più di 4 GB di memoria per thread. In generale, questo dovrebbe applicarsi a tutti i database.

Una delle differenze principali tra le architetture è l'aumento dell'indirizzamento che consente una maggiore gestione della memoria. Mentre l' estensione dell'indirizzo fisico di Intel consente l'indirizzamento di oltre 4 GB, è ancora limitata a 4 GB per thread. PAE consente un massimo di 64 GB.

Wikipedia ha un confronto tra 64 e 32 bit, che include dettagli di livello più basso.


2
È per processo, non per thread. I thread condividono lo stesso spazio di memoria.
Evan Carroll,

3

Notare che se si hanno solo librerie client MySQL a 64 bit, si otterranno errori di "architettura errata" quando si tenta di collegarle con il codice a 32 bit. Questo è successo a me quando ho provato a installare i collegamenti python ("pip install MySQL-python").

È possibile utilizzare un server MySQL a 64 bit con un client MySQL a 32 bit ed è un peccato che il MySQL Community Server non includa versioni della libreria client sia a 32 che a 64 bit. La soluzione corretta è installare librerie client MySQL a 32 bit aggiuntive. Tuttavia, poiché il modo più semplice per installare MySQL sembra essere il download binario di MySQL Community Server e dato che il programma di installazione a 64 bit viene fornito solo con le librerie client a 64 bit, il percorso di minor resistenza è semplicemente scaricare il programma di installazione a 32 bit .

(tutto questo, supponendo che userete sempre set di dati molto piccoli)


2

Per così tante cose, 32 bit è una vittoria (purché tu possa vivere con lo spazio degli indirizzi), ma i DB sono una cosa in cui anche i piccoli database possono ottenere un vero impulso in esecuzione a 64 bit. Certo, non so nulla del server MS SQL, ma ho visto benchmark (ad esempio, su un Sun 5 (desktop Sun a 64 bit più vecchio), a 32 bit era generalmente un po 'più veloce, tranne mysql, che era 30 % più veloce a 64 bit.


2
"Per così tante cose, 32 bit è una vittoria" - Esempi ??
Chris S,

1
L'unico caso che posso immaginare dove un database a 32 bit sarebbe più veloce di 64 bit è se il codice non è stato compilato con ottimizzazioni appropriate. Per quanto riguarda il software aziendale, i database sono probabilmente la cosa che può meglio sfruttare ciò che offre 64 bit.
John Gardeniers,

1
Bene, un gran numero di parametri di riferimento nell'era di transizione RISC 32> 64, e almeno i primi x86 hanno mostrato poco o nessun vantaggio a 64 bit, a meno che non sia necessario lo spazio degli indirizzi, e db lo faccia. Non volevo crederci, e oggi scommetto per x86, 64 bit è sempre più veloce (solo perché sfuggi a quel set di istruzioni i32). Anandtech.com ha dei benchmark fino a quando i tuoi occhi non sanguinano. Ricorda: MOSTRAMI I DATI.
Ronald Pottol,

1
A parità di tutto il resto, il principale svantaggio che mi viene in mente per 64 bit è con puntatori più grandi (64 bit), che occuperanno più spazio di memoria cache rispetto a una struttura di dati dinamica a 32 bit equivalente (ovvero elenchi collegati, alberi ...). Ciò riduce la quantità di memoria cache disponibile. Questo sintomo persiste anche nella memoria principale. Il mio server Debian a 64 bit con solo 64 MB di RAM utilizza più swap ed esegue meno app rispetto a un server a 32 bit con configurazione simile.
sybreon,

3
@sybreon: penso di avere un vecchio 128mb in giro se ne hai bisogno!
John B
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.