Tous les produits
Search
Centre de documentation

PolarDB:Partitionnement par intervalle de plage

Dernière mise à jour :Aug 12, 2026

Le partitionnement par intervalle de plage étend le partitionnement par plage. Il permet à la base de données de créer automatiquement une partition lorsque les données à insérer dépassent la plage d'une partition existante.

Prérequis

Votre cluster doit exécuter PolarDB for MySQL 8.0.2 avec une version de révision 8.0.2.2.0 ou ultérieure. Pour vérifier la version du noyau de votre cluster, consultez Interroger la version du moteur.

Informations générales

Lorsque vous insérez des données dans une table partitionnée par plage et que ces données se situent hors de la plage des partitions existantes, l'insertion échoue et renvoie une erreur. Avec le partitionnement par intervalle, la base de données crée automatiquement de nouvelles partitions selon la plage spécifiée dans la clause INTERVAL dès que les données à insérer excèdent les limites actuelles.

Si l'intervalle est défini sur un mois et que les données à insérer se situent deux mois après le point de transition actuel (valeur limite maximale de la partition courante), le système crée la partition correspondant au mois des données ainsi que celle du mois précédent. Par exemple, pour une table partitionnée par intervalle de plage avec un pas mensuel dont le point de transition est le 15 septembre 2021, l'insertion de données datées du 10 décembre 2021 déclenche la création automatique de trois partitions couvrant la période du 15 septembre 2021 au 15 décembre 2021. Les données s'insèrent ensuite dans la partition correspondant à l'intervalle contenant le 10 décembre 2021.

Limites

  • La syntaxe COLUMNS() n'accepte qu'une seule clé de partition, qui doit correspondre à une plage numérique ou temporelle.

  • Vous devez définir au moins une partition de plage.

  • Les partitions se créent exclusivement par ordre croissant.

  • Les clés de partition DATE ne peuvent pas utiliser d'intervalles TIME (HOUR, MINUTE ou SECOND). Inversement, les clés TIME excluent les intervalles DATE (YEAR, QUARTER, MONTH, WEEK ou DAY). Les clés SECOND imposent un intervalle minimal de 60.

  • Les instructions INSERT SELECT et UPDATE ne permettent pas d'ajouter des partitions.

  • L'intervalle ne peut plus être modifié après la création de la table.

  • Le sous-partitionnement est pris en charge uniquement pour les tables partitionnées par plage-hachage.

  • LOAD DATA requiert que la plage des partitions existantes couvre toutes les données importées.

  • Les déclencheurs, fonctions stockées et procédures stockées ne peuvent pas insérer de données dans une partition par intervalle de plage.

  • L'instruction LOCK TABLES n'est pas prise en charge.

  • Les clés de partition ne doivent être ni AUTO_INCREMENT, ni des colonnes virtuelles, ni des colonnes générées par défaut, ni de type STRING.

  • Les partitions personnalisées (y compris celles issues des instructions CREATE TABLE et DDL) ne peuvent pas utiliser le préfixe _p.

  • Les partitions créées automatiquement ne peuvent pas faire l'objet d'une restauration.

  • Les insertions par lot peuvent créer jusqu'à 30 partitions simultanément.

  • L'exécution d'une instruction DDL pendant la création automatique de partitions par une opération INSERT risque de provoquer une erreur d'interblocage.

  • Le partitionnement par intervalle de plage constitue une extension du partitionnement par plage. Utilisez le partitionnement par plage standard lorsque le partitionnement par intervalle ne convient pas.

Utilisation

Configurez les paramètres suivants pour activer ou configurer le partitionnement par intervalle de plage.

Paramètre Description
partition_level_mdl_enabled Le partitionnement par intervalle de plage repose sur la fonctionnalité MDL au niveau de la partition. Cette granularité plus fine du Minimum Description Length (MDL) réduit l'impact des instructions DDL sur les opérations DML. Pour utiliser le partitionnement par intervalle de plage, assurez-vous que le paramètre partition_level_mdl_enabled est défini sur ON. S'il est désactivé (OFF), vous ne pouvez pas créer de table partitionnée par intervalle de plage. Pour une table existante, seules les valeurs situées dans la plage actuelle sont insérables ; toute valeur hors limites déclenche une erreur.
interval_partitioning_enabled Ce paramètre contrôle la fonctionnalité de partitionnement par intervalle de plage, tandis que partition_level_mdl_enabled gère le MDL au niveau de la partition. Ces deux paramètres sont indissociables et doivent tous deux être activés (ON). Si interval_partitioning_enabled est désactivé, vous ne pouvez pas créer de table partitionnée par intervalle de plage. Pour une table existante, les insertions se limitent strictement à la plage couverte par les partitions actuelles, sous peine d'erreur.
transaction_isolation La fonctionnalité MDL au niveau de la partition garantit l'isolation uniquement aux niveaux read-committed ou read-uncommitted. Ce paramètre doit donc correspondre au niveau d'isolation requis par le MDL partitionnel. Par défaut, les clusters cloud utilisent le niveau d'isolation read-committed.