Le partitionnement dans une base de données

Dans les bases de données, il existe plusieurs concepts qui sont communs pour chaque saveur (SQL Server, Oracle, Sybase, etc).
Un de ces concept est le partitionnement de table ou d’index. Mais à quoi ça sert au juste?

En terme simpliste, cela permet de subdiviser une table et/ou index en plusieurs fragments physiques tout en conservant qu’une seule table logique. Ce que cela change, c’est de permettre un accès plus rapide aux données désirées. Cette méthode est grandement utilisée dans les entrepôts de données. Les très grosses tables (en millions d’enregistrements) peuvent être subdivisées en milliers d’enregistrements ce qui permet d’accéder les  données plus rapidement.

Par exemple, si nous avons une table possédant quelques millions d’enregistrements et que les performances commencent à être atténuées gravement, nous pourrons penser à utiliser le partitionnement. En étudiant les possibilités de divisions de cette table, nous pourrons améliorer sensiblement les performances.

Il est évident que cela ne se fait pas en deux ou trois clics. Il faut en clair, renommer la table originale, créé une nouvelle table avec les paramètres de partitionnements propre à la base de données. Une fois cela fait, il suffit de copier les données de la table originale dans la nouvelle table et recréer les contraintes sur cette nouvelle table. Pour les indexes, il serait également souhaitable de les partitionner selon les critères de la tables afin d’optimiser les accès au maximum. Et avant tout cela, vérifier les impacts sur les accès aux données.

Comme tout changement de structure d’une base de données, prenez le temps de faire une sauvegarde de sécurité (Backup) de votre base de données dans le cas que vous éprouviez des problèmes lors de la mise en place d’un telle solution. Dans le doute, demandez à des personnes expérimentées dans le domaine.