Aller sur la version française Go to English versionAccueil > Communautés > Le blog > Billets techniques > MySQL 5.1.22 RC : Discussion sur le partitionning

MySQL 5.1.22 RC : Discussion sur le partitionning

Par joce le 17 Octobre à 22:51:59 5 commentaire(s)

MySQL vient d'annoncer la release de sa version 5.1.22 RC, et parmi le top des nouvelles fonctionnalités, le partitionning est cité.
Qu'est ce donc et est-ce si bien que cela ?

 

Sans rentrer dans les détails de la syntaxe des requètes le partitionning permet, suivant des régles définies par l'utilisateur, de séparer physiquement sur le disque dans des fichiers différents et de façon transparente les données d'une table.

 

Pour prendre un exemple concret, pour un forum par exemple, deux approches sont possibles :

 

Mettre toutes les catégories du forum dans une même table, ou alors séparer chaque catégorie dans une table différente.

 

La première approche permet une gestion simple des opération sur de multiples catégories (déplacement, fusion, etc), mais dès que l'on veut vraiment isoler une catégorie en particulier, les choses sont plus complexes (aucune possibilité de restaurer une cat en particulier d'un backup en cas de crash par exemple), et les performances ne sont pas optimales (obligé d'utiliser un index sur la catégorie voulue).

 

La deuxième approche permet un gain de vitesse, et une gestion des données par catégorie plus simple, mais dès qu'on commence à vouloir traiter plusieurs catégories à la fois, les choses se compliquent.

 

Le partitionning permet d'obtenir le meilleur des deux mondes : l'utilisateur ne voit et ne manipule qu'une seule table, et on obtient les performances des tables dissociées. De plus, la façon dont les tables sont stockées sur le disque permet de récupérer uniquement certaines "partitions".
C'est l'idéal me direz vous ? Malheureusement, pas complétement. Un des gros points noirs du partitionning se situe au niveau des files descriptors. En effet, même si vous ne voulez accéder qu'à une seule catégorie en particulier, (et donc une seule partition), MySQL va ouvrir tous les fichiers correspondant à chaques partitions associées à votre table (si vous avez 1024 catégories, ca fait quand même 1024 fichiers à ouvrir en même temps).
Linux étant généralement avare de file description par defaut, si vous gérez beaucoup de catégories vous allez vite découvrir la magnifique erreur :

 

"Too many open files".

 

En bref, avant de considérer le partitionning comme le saint graal et de réecrire votre application pour en bénéficier, pensez à ce petit détail ;)




Commentaires (5)

Ducktale

le 19 Octobre à 13:18:28


tu y penses pour recoder le forum ?
parce que la BDD est assez moche là pour l'instant ... :/

Joce

le 20 Octobre à 00:46:26


5.1 only + le problème des file descriptor, c'est dissuasif.
Pour la BDD "moche", c'est honnetement par très grâve à partir du moment où c'est très efficace.

Ducktale

le 20 Octobre à 12:27:07


joce a écrit :

5.1 only + le problème des file descriptor, c'est dissuasif.
Pour la BDD "moche", c'est honnetement par très grâve à partir du moment où c'est très efficace.


non c'est sûr :d
y'a quoi dans la 5.1  qui gène ?

Joce

le 21 Octobre à 01:34:31


Comment ca ? Ba la 5.1 est pas encore sortie officiellement, donc faire un forum compatible 5.1 only c'est pas top :Ds

Ducktale

le 26 Octobre à 23:07:38


ah oki j'avais pas capté le sens de ta phrase en fait :d

Inconnu

 

Vous devez être idendifié pour déposer un commentaire.

Cliquez ici pour vous enregistrer