Maison >Problème commun >Comment choisir une base de données
Méthodes de sélection d'une base de données : 1. Cible ; 2. Fonction ; 3. Combien de personnes l'utilisent et comprennent les problèmes de concurrence 4. Sécurité et stabilité 5. Système d'exploitation utilisé ;
Recommandations d'apprentissage gratuites associées : tutoriel vidéo MySQL
Comment choisir une base de données :
Équilibrez généralement vos besoins sous 5 aspects :
(1) Cible
(2) Fonction
(3) Combien de personnes l'utilisent (problèmes de concurrence)
(4) Sécurité et stabilité
(5) Opérations utilisées Système (UNIX, linux, windows)
Pour les bases de données utilisées :
• dBase/FoxBase/FoxPro dans le monde DOS/Novell/Windows 3.x
• MS SQL Serveur
• Oracle
• Serveurs Sybase SQL/ASE
• Sybase IQ
• Informix/Dynamic
• MySQL
• PostGreSQL/EnterpriseDB
Choisissez certains besoins critiques :
Systèmes critiques (OLTP) et hautes performances
Si nous avons besoin que la base de données joue un rôle plus important dans les systèmes d'entreprise clés et souhaitons atteindre des objectifs tels que les temps d'arrêt/haute disponibilité/clustering, la fiabilité (performances et volume de données), la réplication après sinistre et la génération automatique de rapports, ou devons atteindre des niveaux extrêmement élevés. -effets de vitesse et de faible latence (HPC, calcul haute performance), nous pouvons alors avoir besoin de capacités de classe entreprise de la base de données, mais le coût est également plus élevé.
Fonction de cluster HA (haute disponibilité)
Les fonctions de cluster de chaque plate-forme de base de données sont les suivantes :
• Oracle RAC est le plus adapté au cluster HA, à l'équilibrage de charge et à l'expansion ;
• MS SQL Server fournit une fonction de basculement HA, mais pas d'équilibrage de charge
• Le cluster Sybase ASE 15 a des fonctions équivalentes à Oracle RAC ;
• TeraData lui-même est un plate-forme de base de données distribuée ;
• Le cluster MySQL affirme que les performances de référence TPC-C sont supérieures à celles d'Oracle RAC
• IBM DB2/UDB sur IBM P Series/Power exécutant AIX HACMP (High Availability Cluster Multiprocessing) ; ) Il fonctionne très bien sur des serveurs et des clusters tels que Veritas VCS/Sun.
Base de données hautes performances/faible latence/en mémoire
• Oracle fournit une base de données en mémoire TimesTen
• Le cluster MySQL utilise un moteur de stockage en mémoire
;• Sybase fournit une base de données mémoire ASE ;
• De plus, nous pouvons également utiliser RAMSAN/SSD (disque SSD) pour installer la base de données SQL Server. Toutes les E/S de disque liées à la base de données se produisent sur le serveur. SSD au lieu du disque dur traditionnel. , nous pouvons donc réduire considérablement la latence des E/S du disque, améliorer le débit des E/S et améliorer les performances globales de la base de données
• Il existe d'autres bases de données en mémoire ; tels que SQLite ou eXtremeDB, mais la plupart d'entre eux prennent uniquement en charge les systèmes embarqués ou ne prennent en charge qu'un seul utilisateur ou une seule connexion en même temps.
Évolutivité/Performance
• Lors de l'utilisation du cluster Oracle RAC et Sybase ASE 15, si le matériel existant ne peut pas répondre aux exigences de performances, il suffit d'ajouter un Utiliser un serveur plus puissant, puis remplacer progressivement d'autres nœuds ;
• Lors de l'utilisation d'un cluster SQL Server, car il ne prend en charge que le mode actif/passif, il n'y a pas d'évolutivité au niveau de l'instance si le matériel existant ne peut pas répondre aux exigences. , nous devons remplacer le cluster entier ;
• Le cluster MySQL prend également en charge l'ajout de nœuds au cluster où tous les nœuds sont actifs, mais c'est un cluster sans partage, plus de nœuds signifie plus de copies de base de données, plus de stockage et plus de trafic réseau est nécessaire pour répliquer les données sur tous les nœuds.
Réplication
• Sybase : Sybase possède la meilleure solution de réplication, surpassant les solutions de réplication Data Guard d'Oracle et SQL Server (c'est-à-dire qu'en utilisant sa mise en miroir/envoi de journaux/réplication transactionnelle, la réplication de SQL Server est encore loin pire que le serveur de réplication de Sybase);
La réplication hétérogène et la réplication homogène de Sybase sont les principales solutions pour lesquelles Sybase a été exclue de Wall Street dans les années 1990 mais utilisée par de nombreuses grandes entreprises.
La réplication Sybase peut être au niveau de la base de données (réplication active/active, meilleure que la mise en miroir de SQL Server), au niveau des transactions (similaire à la réplication des transactions SQL Server), au niveau des tables, au niveau des procédures stockées, au niveau des fonctions, MSA ( multi-site disponible) et implémenté via log shipping (la solution du pauvre dans le monde de la réplication), son activateur de miroir associé à EMC/SRDF peut véritablement garantir le ZDL (zéro perte de données) en cas d'indisponibilité planifiée ou non.
• SQL Server : la réplication de SQL Server peut être implémentée via l'envoi de journaux et la mise en miroir de bases de données (actif/passif, R/W ou lecture seule), et prend en charge la réplication granulaire des transactions au niveau objet (table).
• Oracle : Data Guard d'Oracle est l'une des meilleures solutions pour le clonage de bases de données et la reprise après sinistre (en utilisant RMAN).
• MySQL : MySQL fournit un clustering sans partage. Fondamentalement, tous les nœuds actifs sont répliqués de manière synchrone. Sa réplication asynchrone prend également en charge la réplication au niveau des transactions et des objets.
• Solutions au niveau du stockage : grâce au BCV d'EMC, au Snapshot Manager de NetApp, au Snapshot d'Hitachi et au Volume Replicator de Veritas, la réplication des données peut avoir lieu au niveau du bloc de disque et au niveau du volume.
Système hybride
Généralement, la base de données back-end stocke une grande quantité de données, et il y aura des problèmes de performances lors de la récupération des données (tri des données, regroupement, agrégation et calcul) Problème, lorsque la vitesse d'exécution ralentit, cela affectera le processus d'écriture des données.
Ainsi, pour ces types d'applications, nous nous attendons à ce que la base de données gère bien de grandes quantités de données et gère également bien les problèmes de blocage en lecture/écriture.
• Oracle
Oracle est le meilleur choix pour ce genre de système car chez Oracle, les programmes de lecture/écriture ne se bloquent pas et les données sont conservées tout au long du processus/session de lecture /transaction Ils sont tous cohérents et la surcharge du système se produit principalement dans les verrous de mémoire et les journaux de rétablissement.
• SQL Server
La nouvelle isolation des instantanés de SQL Server 2005 utilise la même fonctionnalité de gestion des versions de lignes d'Oracle, mais générera plus d'E/S dans tempdb.
• Sybase ASE
Les programmes de lecture/écriture de Sybase ASE se bloqueront les uns les autres, mais Sybase IQ utilise la gestion des versions d'instantanés pour résoudre ce problème de blocage.
• Autres bases de données
Il existe d'autres bases de données qui n'ont pas de problème de blocage, mais certaines d'entre elles ne sont même pas conformes aux normes ACID (Atomicité, Cohérence, Isolation et Durabilité).
Entrepôt de données
Les entreprises établissent des entrepôts de données pour stocker/archiver toutes les données historiques, ainsi que les données qui, selon elles, doivent être placées dans la base de données. -Les données normalisées entrent dans l'entrepôt de données, multidimensionnelles permettant une récupération rapide pour les solutions OLAP et de business intelligence (BI).
Les entrepôts de données sont également utilisés pour tester des stratégies commerciales nouvelles ou améliorées. De plus, les données de l'entrepôt de données croissent de manière exponentielle plutôt que linéaire.
Avantages des bases de données relationnelles basées sur des colonnes
Les bases de données relationnelles basées sur des colonnes présentent de grands avantages car elles sont intrinsèquement multidimensionnelles et chaque colonne est auto-indexée (arbre B ).
Les bases de données typiques basées sur des colonnes incluent Big Table de Google, Sybase IQ, Vertica et KickFire construites sur MySQL.
En moyenne, ces bases de données basées sur des colonnes sont 60 à 100 fois plus rapides en termes de récupération de données que les bases de données relationnelles traditionnelles basées sur des lignes telles que Oracle, SQL Server, Sybase ASE, TeraData, DB2 et MySQL, mais elles le sont. plus lent lors de la mise à jour des données au niveau des lignes. Jusqu'à présent, Sybase IQ semble être le leader dans ce domaine. On dit que le plus grand entrepôt de données au monde (plus de 1P octets) utilise Sybase IQ.
De manière générale, les données relationnelles basées sur les lignes (SQL Server, Oracle, Informix, DB2/UDB, MySQL, Sybase ASE, etc.) conviennent aux applications OLTP, tandis que les bases de données relationnelles basées sur les colonnes (Sybase IQ, KickFire, Vertica, etc.) etc.) sont plus adaptés aux applications OLAP/DSS et d'entrepôt de données.
Remarque : ces bases de données de séries chronologiques telles que OneTick, kdb+ et Vhayu ne peuvent pas être considérées comme des bases de données relationnelles. Leur structure de stockage est basée sur des fichiers. Les données de chaque colonne sont stockées dans un fichier séparé, qui est essentiellement une colonne. -basées sur des bases de données, les bases de données basées sur des colonnes peuvent également être utilisées pour le backtesting. De plus, les données des entrepôts de données basés sur des lignes (cubes) augmentent de façon exponentielle, tandis que les données des entrepôts de données basés sur les colonnes augmentent de manière linéaire.
Traditionnellement, Oracle était un leader dans le domaine des entrepôts de données, mais il a désormais perdu son avantage face aux bases de données relationnelles basées sur des colonnes (telles que Sybase IQ, Vertica et KickFire). que Google utilise est également un système de base de données/stockage basé sur des colonnes.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!