(J'ai lu beaucoup environ environ 64 bits par rapport aux applications/applications 32 bits, mais cette question est spécifiquement en ce qui concerne les bases de données.)
J'essaie de comprendre les avantages et les inconvénients de bases de données 32 bits par rapport à 64 bits, et à savoir dans quelles conditions il commence à être logique d'utiliser des installations 64 bits.
Les systèmes de base de données que je suis intéressé sont: SQL Server 2008, MySQL et PostgreSQL 9.0.
J'ai lu que les versions de Pre-9.0 de PostgreSQL ne sont livrées en 32 bits pour Windows et ceci article sur l'exécution 32 bits postgresql sur des fenêtres de 64 bits Efface une partie de ma confusion, mais je ' m cherche plus d'informations.
Quand devrais-je bénéficier de l'utilisation de bases de données 64 bits (c'est-à-dire la taille de la base de données/espace disque, la mémoire système disponible, les types de données Sernarios connus pour en bénéficier, quel moteur de base de données utilise, etc.)?
dans quelles conditions il commence à avoir un sens d'utiliser des installations 64 bits.
Sous tout sauf être idiot. Désolé - ce qui serait bien installer une base de données 32 bits sur un serveur 64 bits? Et - Imagine - Server 2008R2 est uniquement disponible en 64 bits.
Il y a - aujourd'hui - aucun scénario où il est logique d'installer une version SQL SQL 32 bits si l'on a une chance.
Les bases de données sont spécifiques en ceci - car elles souhaitent utiliser beaucoup de mémoire comme cache si nécessaire. Beaucoup plus que le maigre 2GB/3GB Un processus 32 bits peut leur donner. PAE n'est pas la même chose. Même en ignorant les limites, la mémoire PAE n'est pas égale à la mémoire réelle pour un SQL Server' (il est utilisé uniquement pour une chose - Caching DB Pages).
32 bits OS - est au même niveau. Cela n'a aucun sens sur le matériel moderne pour installer un système d'exploitation 32 bits.
PostgreSQL bénéficie d'une construction de 64 bits de deux manières principales. Premièrement, les types de données pouvant s'intégrer dans 64 bits (les nombres entiers plus importants et les types d'horodatage principalement) peuvent être transmis plus efficacement directement dans des registres plutôt que d'utiliser des pointeurs. Deuxièmement, il est possible d'allouer plus de mémoire pour le cache tampon dédié de la base de données. Le point de revient décroissant sur cet accord (Shared_buffers) est généralement d'environ 8 Go, mais il sera limité à <2 Go sur un système 32 bits.
Toutefois, si vous êtes sous Windows, PostgreSQL ne gère pas la mémoire partagée aussi efficacement que sur les plates-formes UNIX-ISH. Le point de return de la diminution finit généralement par être <= 512 Mo de mémoire dédiée pour la base de données, que vous ayez une construction de 32 bits ou 64 bits de PostgreSQL. Vous ferez mieux de laisser le reste pour le cache du système d'exploitation plutôt que de le dédier à la base de données. En conséquence, il n'y a pas vraiment que beaucoup de performances gagnent de 32 à 64 bits avec PostgreSQL sous Windows; L'accord principal qui profiterait normalement d'avoir plus RAM Disponible ne l'utilise pas très bien.
J'exécute MySQL sur une architecture 64 bits car je veux qu'ils utilisent le plus efficacement plus de 4 Go de mémoire par fil. De manière générale, cela devrait s'appliquer à toutes les bases de données.
L'une des principales différences entre les architectures est accrue de l'adressage permet une meilleure manipulation de la mémoire. Tandis qu'Intel extension d'adresse physique Permet une adressage de plus de 4 Go, il est toujours limité à 4 Go par thread. PAE permet un maximum de 64 Go.
Wikipedia a une comparaison de 64 bits contre 32 bits, qui comprend des détails plus bas de niveau.
Notez que si vous n'avez que des bibliothèques client MySQL de 64 bits, vous obtiendrez des erreurs "mauvaises architecture" lorsque vous essayez de les relier avec un code 32 bits. Cela m'est arrivé quand j'ai essayé d'installer python fixations ("PIP Install MySQL-Python").
On peut utiliser un serveur MySQL 64 bits avec un client MySQL 32 bits et il est dommage que le serveur communautaire MySQL n'inclut pas les versions de la bibliothèque client 32 bits et 64 bits. Le correct Solution consiste à installer des bibliothèques de clients MySQL de 32 bits supplémentaires. Cependant, étant donné que le moyen le plus simple d'installer MySQL semble être le téléchargement binaire de MySQL Community Server , et étant donné que l'installateur 64 bits est livré avec des bibliothèques clientes de 64 bits uniquement, le chemin de la moindre résistance est de Il suffit de télécharger le programme d'installation 32 bits.
(Tout cela, en supposant que vous utiliserez toujours de très petits ensembles de données)
Pour tant de choses, 32 bits est une victoire (tant que vous pouvez vivre avec l'espace d'adressage), mais DB est une chose où même de petites bases de données peuvent obtenir un réel boost fonctionnant en 64 bits. Accordé, je ne connais rien à propos de Mme SQL Server, mais j'ai vu des points de repère (par exemple, sur un soleil 5 (plus ancien de bureau solaire 64 bits), 32 bits étaient généralement un peu plus rapides, à l'exception de MySQL, qui était de 30 % plus rapide en 64 bits.