Services webmasters
Partenaires
Jeux concours gratuits
 
Options de démarrage BDB
<<<
Caractéristiques des tables BDB Ce que nous devons corriger dans BDB dans un futur proche :
>>>

7.6 Tables BDB ou BerkeleyDB
7 Types de tables MySQL
 Manuel de Référence MySQL 4.1 : Version Française

Vue d'ensemble des tables BDB
Installation de BDB
Options de démarrage BDB
->Caractéristiques des tables BDB
Ce que nous devons corriger dans BDB dans un futur proche :
Systèmes d'exploitation supportés par BDB
Restrictions avec les tables BDB
Erreurs pouvant survenir lors de l'utilisation des tables BDB

7.6.4 Caractéristiques des tables BDB

  • Pour permettre les transactions annulabes, BDB gère un fichier de log. Pour maximiser les performances, vous devriez placer ces fichiers sur un autre disque que celui de votre base, en utilisant l'option --bdb-logdir .
  • MySQL fait un point de contrôle à chaque fois qu'un nouveau fichier de log BDB est démarré, et supprime les fichiers de logs anciens qui ne sont pas utiles. Si vous exécutez la commande FLUSH LOGS , vous placerez un nouveau point de contrôle pour les tables Berkeley DB.Pour la restauration après crash, vous devez utiliser les sauvegardes et le log binaire de MySQL. Sauvegardes de base de données . Attention : si vous effacez les anciens fichiers de log qui sont en cours d'utilisation, BDB ne sera pas capable de faire la restauration et vous risquez de perdre des données.
  • MySQL requiert une clé PRIMARY KEY dans chaque table BDB pour être capable de faire référence aux lignes précédemment lues. Si vous n'en créez pas, MySQL va gérer une telle clé de manière cachée. La clé cachée a une taille de 5 octets, et est incrémentée à chaque nouvelle insertion.
  • Si toutes les colonnes auxquelles vous accédez dans une table BDB font parties du même index dans la clé primaire, alors MySQL peut exécuter la requête sans avoir à lire la ligne elle-même. Dans une table MyISAM , ce qui précède n'est valable que si les colonnes font partie du même index.
  • La clé PRIMARY KEY sera plus rapide que n'importe quelle autre clé, car la PRIMARY KEY est stockée avec les données. Comme les autres clés sont stockées sous la forme données + PRIMARY KEY , il est important de garder une clé PRIMARY KEY aussi courte que possible pour économiser de l'espace disque, et améliorer la vitesse.
  • LOCK TABLES fonctionne avec les tables BDB sur les autres tables. Si vous n'utilisez pas le verrou LOCK TABLE , MySQL va poser un verrou interne multiple sur la table, pour s'assurer que la table est bien verrouillée, si un autre thread tente de poser un verrou.
  • Le verrouillage interne des tables BDB est fait au niveau page.
  • SELECT COUNT(*) FROM table_name est très lent, car les tables BDB ne maintiennent pas un compte de leur lignes dans la table.
  • Scanner est plus lent qu'avec MyISAM car les tables BDB stockent les données dans un fichier B-tree et non pas dans un fichier séparé.
  • L'application doit toujours être prête à gérer des cas où une modification sur une table BDB peut être annulée, ou une lecture abandonnée pour cause de blocage de verrous.
  • Les clés ne sont pas compressées avec les clés précédentes, comme pour les tables ISAM et MyISAM . En d'autres termes, les informations de clés prennent un peu plus d'espace pour les tables BDB , comparativement aux tables MyISAM qui n'utilisent pas l'option PACK_KEYS=0 .
  • Il y a souvent des trous dans les tables BDB pour vous permettre d'insérer de nouvelles lignes au milieu de l'arbre de données. Cela rend les tables BDB un peu plus grandes que les tables MyISAM .
  • L'optimiseur a besoin de connaître une approximation du nombre de lignes dans la table. MySQL résoud ce problème en comptant les insertions et en conservant ce compte dans un segment séparé pour chaque table BDB . Si vous ne faites pas souvent de DELETE ou ROLLBACK , ce nombre sera plutôt précis pour l'optimiseur MySQL, mais comme MySQL ne stocke ce nombre qu'à la fermeture de la table, il peut être incorrecte si MySQL crashe. Cela ne doit pas être fatal si ce nombre n'est pas à 100% correct. Vous pouvez forcer la mise à jour de ce nombre avec la commande ANALYZE TABLE ou OPTIMIZE TABLE . Syntaxe de ANALYZE TABLE . Syntaxe de OPTIMIZE TABLE .
  • Si vous atteignez la capacité maximale du disque avec la table BDB , vous allez obtenir une erreur (probablement l'erreur 28), et la transaction va s'annuler. C'est un comportement différent des tables MyISAM et ISAM qui vont attendre que mysqld ait trouvé de l'espace disque avant de continuer.

<< Caractéristiques des tables BDB >>
Options de démarrage BDB Tables BDB ou BerkeleyDB Ce que nous devons corriger dans BDB dans un futur proche :
Services webmasters
Les manuels
 
CoursPHP.com - Reproduction interdite -