Les nouveautés de MySQL 5.1 — (part 1/5)

novembre 28, 2008

Que de chemin parcouru depuis ce 5 juillet 1999, date de lancement de MySQL 3.23.0. En plus des objectifs de simplicité d’administration, de hautes performances et de fiabilité, se sont greffées, au fur et à mesure, les fonctionnalités les plus demandées par les utilisateurs. La nouvelle version du SGBDR open-source le plus utilisé, sortie en GA le jeudi 27 novembre 2008, ne déroge pas à ces règles d’or. Numéro un pour les applications en ligne, MySQL se positionne maintenant sur le secteur des applications d’entrepôts de données et d’informatique décisionnelle.

Le but de cet article est de brasser un large panorama des principales nouveautés de MySQL 5.1, telles que le partitionnement, le programmateur d’évènements, la réplication par les données, ainsi que le support des données sur disque avec MySQL Cluster et le support xml/xpath.

Le partitionnement

Une des fonctionnalités phare de cette nouvelle mouture, est la possibilité de partitionner ses tables MySQL. Le partitionnement consiste à fragmenter une table en fonction des données qu’elle contient. Le but principal est d’optimiser les performances : le partitionnement peut permettre d’améliorer les réponses de certaines requêtes. Les données étant stockées dans différentes partitions, l’optimiseur ne prendra pas en compte les partitions non impactées par la requête (PRUNING).

Un autre objectif est de faciliter certaines tâches de maintenance : les données d’une partition peuvent être facilement et rapidement effacées, simplement en supprimant la partition.

Enfin, le partitionnement permet de mettre les données et les index sur des disques différents : il est possible de stocker les données et les index sur des disques séparés, pour les tables MyISAM.

Le partitionnement avec MySQL

La commande SHOW VARIABLES LIKE ‘have_partitioning’ est un moyen simple de savoir si votre version de MySQL supporte le partitionnement.

L’opération de partitionnement proprement dite se réalise lors de la création de la table (avec la commande CREATE TABLE) ou lors de la modification de sa structure (avec la commande ALTER TABLE) en utilisant la clause PARTITION BY.

Il est a noter que les moteurs Merge, Federated, CSV ne permettent pas le partitionnement.

MySQL propose 4 types de partitionnement, par intervalle (RANGE), par liste (LIST), et par hachage (HASH ou KEY).

Quelques exemples de partitionnements

Partitionner sa table est une opération très simple. Le plus délicat est finalement de savoir pourquoi partitionner et comment le faire. Le critère de partitionnement est donc essentiel pour espérer gagner en performance.

3 Responses to “Les nouveautés de MySQL 5.1 — (part 1/5)”

  1. […] Parmi les nouveautés: […]

  2. […] (<- précédent) […]

  3. mysql archive et partition…

    4 tables de même structure

    CREATE TABLE IF NOT EXISTS logs (
    id mediumint(8) unsigned zerofill NOT NULL auto_increment,
    id_2 mediumint(8) NOT NULL,
    date date NOT NULL,
    object_type varchar(20) NOT NULL,
    action varchar(20…