Sortie de la version 5.1 de MySQL Convertir en PDF Version imprimable Suggérer par mail

C'est le 15 avril à Santa Clara en Californie que Sun a officiellement annoncé la sortie de la version 5.1 de la base de données Open Source MySQL.

Vous pouvez retrouver l'intégralité de l'annonce (en anglais) à cette adresse .

Si vous souhaitez plus de détails et dans la langue de Molière, je vous invite à télécharger le livre blanc MySQL qui décrit précisément les nouveautés de la version 5.1 (il faut au préalable s'enregistrer).

L'une des fonctions les plus intéressantes de MySQL 5.1 est son support du partitionnement horizontal des données, à la fois pour les tables et les index.


L'excellente nouvelle en la matière est que les principales formes de partitionnement sont supportées par les principaux moteurs de stockage de MySQL :

 

1. Range - ce mode de partitionnement permet aux DBA de spécifier diverses plages auxquelles les données sont assignées. Par exemple, un DBA pourra créer une table partitionnée segmentée en trois partitions contenant des données pour les années 1980, 90 et toutes les dates ultérieures, y compris l'an 2000.


2. Hash - ce mode de partitionnement permet aux DBA de séparer les données en fonction d'une clé de hachage calculée, définie sur une ou plusieurs colonnes de table, l'objectif étant d'obtenir une répartition égale des valeurs entre les partitions. Par exemple, un DBA pourra créer une table partitionnée possédant dix partitions basées sur la clé primaire de la table.


3. Key - une forme spéciale de hachage pour laquelle MySQL garantit une répartition égale des données via une clé de hachage générée par le système.

 

4. List - ce mode de partitionnement permet à un DBA de segmenter les données en fonction d'une liste de valeurs prédéfinies qu'il aura spécifiées. Par exemple, un DBA pourra créer une table partitionnée contenant trois partitions pour les années 2004, 2005 et 2006.


5. Composite - ce dernier mode de partitionnement permet aux DBA d'effectuer un sous-partitionnement dans lequel une table sera tout d'abord partitionnée par plage, par exemple, mais où chacune des partitions sera à nouveau segmentée à l'aide d'une autre méthode (par exemple, hachage).

 

Le partitionnement procure un certain nombre d'avantages, dont les deux principaux sont les suivants :

 

  • De meilleures performances - lors des opérations de balayage, l'optimiseur MySQL sait quelles sont les partitions contenant les données qui satisferont telle ou telle requête et n'accédera qu'à ces partitions lors de l'exécution de la requête. Cette faculté s'appelle « l'élagage de partitions » (partition pruning). Par exemple, une table d'un million de lignes peut être divisée par plage en dix partitions différentes de façon que chacune d'entre elles contienne 100 000 lignes. Si une requête n'a besoin que des données d'une seule de ces partitions et qu'une opération de balayage de la table s'avère nécessaire, le système n'accédera qu'à 100 000 lignes au lieu d'un million. MySQL vérifiant évidemment plus vite 100 000 lignes qu'un million, la requête sera donc achevée bien plus tôt. On peut bénéficier du même avantage lors de l'accession aux index puisque des index locaux partitionnés sont créés pour les tables partitionnées. Enfin, il est possible de répartir une table partitionnée sur plusieurs disques physiques en spécifiant des chemins d'accès et des systèmes de fichiers différents pour chaque partition. Cela permet de réduire les conflits d'E/S physiques lorsque l'on accède à plusieurs partitions à la fois.

 

  • Une gestion des données simplifiée - le partitionnement permet aux DBA de mieux contrôler la façon dont les données sont gérées au sein de la base de données. En créant intelligemment des partitions, un DBA peut simplifier l'exécution de certaines opérations sur les données. Il peut par exemple supprimer certaines partitions d'une table partitionnée et laisser les autres intactes (plutôt que d'élaborer une opération de suppression en masse dans la table, génératrice de fragmentation). En outre, les partitions sont automatiquement entretenues par MySQL, ce qui évite au DBA de se charger de la séparation et d'entretenir manuellement un plan de partitionnement horizontal pour chaque table. Par exemple, un DBA pourra créer une table d'historique contenant des données sur les utilisateurs répartis sur diverses plages d'années et faire appliquer automatiquement ces partitions par le serveur de base de données sans avoir à intervenir lui-même.

 

Voici un exemple de création d'une table partitionnée par plage :

 

mysql> CREATE TABLE part_tab

    ->      (  c1 int default NULL,

    ->  c2 varchar(30) default NULL,

    ->  c3 date default NULL

    ->

    ->      ) engine=myisam 

    ->      PARTITION BY RANGE (year(c3)) (PARTITION p0 VALUES LESS THAN (1995),

    ->      PARTITION p1 VALUES LESS THAN (1996) , PARTITION p2 VALUES LESS THAN (1997) ,

    ->      PARTITION p3 VALUES LESS THAN (1998) , PARTITION p4 VALUES LESS THAN (1999) ,

    ->      PARTITION p5 VALUES LESS THAN (2000) , PARTITION p6 VALUES LESS THAN (2001) ,

    ->      PARTITION p7 VALUES LESS THAN (2002) , PARTITION p8 VALUES LESS THAN (2003) ,

    ->      PARTITION p9 VALUES LESS THAN (2004) , PARTITION p10 VALUES LESS THAN (2010),

    ->      PARTITION p11 VALUES LESS THAN MAXVALUE );

Query OK, 0 rows affected (0.00 sec)

 

Voici quelques autres caractéristiques intéressantes du partitionnement dans MySQL 5.1 : 

 

  • Tous les principaux moteurs de stockage acceptent le partitionnement (MyISAM, Archive, InnoDB, etc.)

 

  • Le support de l'indexation pour les tables partitionnées s'applique aux index locaux, qui reflètent chaque partition en mode 1 pour 1. Autrement dit, si une table partitionnée possède dix partitions, l'index local de cette table en contiendra également dix.

 

  • Les métadonnées concernant les tables partitionnées se trouvent dans la base de données INFORMATION_SCHEMA, avec une nouvelle table PARTITIONS.

 

  • Toutes les commandes SHOW prennent en charge le retour des tables partitionnées et les métadonnées d'index.

 

  • Il est possible d'effectuer des fonctions de maintenance et un certain nombre d'opérations sur les partitions (plutôt que de travailler sur une table complète), notamment :

o ADD PARTITION 

o DROP PARTITION 

o COALESCE PARTITION 

o REORGANIZE PARTITION 

o ANALYZE PARTITION 

o CHECK PARTITION 

o OPTIMIZE PARTITION 

o REBUILD PARTITION 

o REPAIR PARTITION 

 

On trouvera davantage d'informations sur le partitionnement dans MySQL dans le manuel de référence en ligne, à l'adresse http://dev.mysql.com/doc/refman/5.1/en/partitioning.html , ainsi que sur les forums MySQL à l'adresse http://forums.mysql.com/list.php?106 .


 

 

» No Comments
There are no comments up to now.
» Post Comment
Only registered users can write a comment.
Please login or register.
 
Suivant >
Joomla Template by Joomlashack
Joomla Templates by JoomlaShack Joomla Templates