Accueil > Communautés > Le blog > Billets techniques > MySQL 5.1.22 RC : Discussion sur le partitionningArchives
- Septembre 2008
- Août 2008
- Juillet 2008
- Juin 2008
- Mai 2008
- Avril 2008
- Mars 2008
- Février 2008
- Janvier 2008
- Décembre 2007
- Novembre 2007
- Octobre 2007
- Septembre 2007
- Août 2007
- Juillet 2007
- Juin 2007
- Mai 2007
- Avril 2007
- Mars 2007
- Février 2007
- Janvier 2007
- Décembre 2006
- Novembre 2006
- Octobre 2006
- Septembre 2006
- Août 2006
- Juillet 2006
- Juin 2006
- Mai 2006
- Avril 2006
- Mars 2006
- Février 2006
- Janvier 2006
- Décembre 2005
- Novembre 2005
- Octobre 2005
- Septembre 2005
- Août 2005
- Juillet 2005
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)
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.
|
non c'est sûr
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
s
Ducktale
le 26 Octobre à 23:07:38
ah oki j'avais pas capté le sens de ta phrase en fait ![]()

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 ...