Cette rubrique explique comment définir une stratégie de création et de suppression de partitions.
Stratégies de création de partitions
La création de partitions pour une table appartenant à un groupe de tables peut échouer ou perturber l'équilibrage de charge. Soyez prudent lorsque vous décidez de configurer une stratégie de création de partitions pour ce type de table.
La création de partitions pour une table au sein d'un groupe de tables peut invalider ce dernier, car les tables d'un même groupe doivent posséder le même nombre de partitions.
Stratégie de création de partitions personnalisée
Vous pouvez créer une stratégie de création de partitions personnalisée afin de générer la limite supérieure d'une partition à l'aide d'une expression SQL. Procédez comme suit :
-
Utilisez une expression SQL pour obtenir l'heure de référence, qui correspond à l'heure de début de la création de partitions.
RemarquePour utiliser l'heure d'exécution du plan de partitionnement comme heure de début, utilisez la fonction now() ou SYSDATE.
Définissez l'intervalle de temps pour la génération des partitions : le plan de partitionnement générera les partitions en fonction de l'intervalle spécifié. Après avoir saisi un intervalle dans le champ Interval , OceanBase Developer Center (ODC) utilise l'expression ${INTERVAL} pour référencer cet intervalle et l'ajoute à l'expression SQL générée à l'étape 1.
Générez l'expression de partitionnement correspondant au type de données de la clé de partitionnement : convertissez l'expression SQL de type temporel obtenue après les étapes 1 et 2 dans le type réel de la clé de partitionnement. Si la clé de partitionnement et l'expression SQL sont du même type, ignorez cette étape.
Vous pouvez référencer des variables dans les stratégies de création de partitions personnalisées. Le tableau suivant répertorie les expressions prises en charge.
|Expression
|
Description
|
Exemple
| | --- | --- | --- | |
INTERVAL
|
L'intervalle de temps pour la génération des partitions. ODC remplacera cette variable par la valeur du champ **Interval ** dans la colonne **Rule ** de la section **Creation Rule **.
|
${INTERVAL}
|
En général, si vous optez pour une stratégie de création de partitions personnalisée, les partitions sont générées sur la base d'un type temporel pour une clé de partitionnement qui n'est pas de type temporel. Les tableaux de référence rapide suivants vous aident à rédiger rapidement l'expression SQL correcte.
Expressions pour générer les limites supérieures des partitions en mode MySQL
Exemple d'expression de partitionnement | Description | Intervalle de temps | Expression SQL pour calculer les limites supérieures des partitions |
| Générer par année | 1 |
|
| Générer par année | 1 |
|
Générer par mois | 1 |
| |
| Générer par année | 1 |
|
Générer par mois | 1 |
| |
| Générer par année | 1 |
|
Générer par mois | 1 |
| |
| Générer par année | 1 |
|
Générer par mois | 1 |
| |
Générer par jour | 1 |
| |
| Générer par année | 1 |
|
Générer par mois | 1 |
| |
Générer par jour | 1 |
| |
| Générer par année | 1 |
|
Générer par mois | 1 |
| |
Générer par jour | 1 |
| |
| Générer par année | 1 |
|
Générer par mois | 1 |
| |
Générer par jour | 1 |
| |
| Générer par année | 1 |
|
Générer par mois | 1 |
| |
Générer par jour | 1 |
| |
| Générer par année | 1 |
|
| Générer par année | 1 |
|
Générer par mois | 1 |
| |
| Générer par année | 1 |
|
Générer par mois | 1 |
| |
Générer par jour | 1 |
| |
Remarque : horodatage Unix | Générer par année | 1 |
|
Générer par mois | 1 |
| |
Générer par jour | 1 |
|
Expressions pour générer les limites supérieures des partitions en mode Oracle
Exemple d'expression de partitionnement | Description | Intervalle de temps | Expression SQL pour calculer les limites supérieures des partitions |
| Générer par année |
|
|
| Générer par année |
|
|
Générer par mois |
|
| |
| Générer par année |
|
|
Générer par mois |
|
| |
| Générer par année |
|
|
Générer par mois |
|
| |
| Générer par année |
|
|
Générer par mois |
|
| |
Générer par jour |
|
| |
| Générer par année |
|
|
Générer par mois |
|
| |
Générer par jour |
|
| |
| Générer par année |
|
|
Générer par mois |
|
| |
Générer par jour |
|
| |
| Générer par année |
|
|
Générer par mois |
|
| |
Générer par jour |
|
| |
| Générer par année |
|
|
Générer par mois |
|
| |
Générer par jour |
|
| |
| Générer par année |
|
|
| Générer par année |
|
|
Générer par mois |
|
| |
| Générer par année |
|
|
Générer par mois |
|
| |
Générer par jour |
|
|
Stratégie de création par incrémentation séquentielle
La méthode Sequentially Increase s'applique uniquement à une clé de partitionnement de type temporel.
L'heure de référence pour cette méthode peut être l'heure actuelle ou une heure spécifiée. Les partitions sont générées séquentiellement en fonction de l'intervalle de temps indiqué.
Stratégies de génération des noms de partitions
Vous pouvez utiliser différentes stratégies pour générer des noms de partitions liés au contenu des partitions.
Actuellement, deux stratégies de génération de noms de partitions sont proposées :
-
Stratégie préfixe + suffixe : un nom de partition généré selon cette stratégie comprend un préfixe et un suffixe. Le préfixe est une constante de chaîne de caractères, tandis que le suffixe fait référence à la valeur de l'expression SQL de la clé de partitionnement de type temporel spécifiée. Vous pouvez modifier le préfixe, le suffixe, l'heure de référence et le format de sortie pour générer différents noms de partitions.
ImportantCette stratégie prend effet uniquement pour les clés de partitionnement de type temporel. Étant donné que la clé de partitionnement référencée par le suffixe est de type temporel, sa valeur d'expression SQL peut être convertie en valeur temporelle, puis mise en forme et affichée comme suffixe du nom de la partition.
-
Stratégie personnalisée : cette stratégie utilise une expression de nommage pour générer des noms de partitions conformes aux exigences de l'utilisateur. La valeur de l'expression SQL de la clé de partitionnement peut être référencée dans l'expression de nommage via ${partitioning key}.

Les tableaux de référence rapide suivants répertorient les expressions courantes fournies par ODC pour générer des noms de partitions. Les clés de partitionnement indiquées dans les tableaux doivent être de type numérique ou caractère.
Expressions pour générer des noms de partitions en mode MySQL
Exemple d'expression de partitionnement | Expression de nommage | Aperçu |
|
| P2024 |
| ||
|
| P202401 |
| ||
|
| P202401 |
| P2024_01 | |
|
| P202401 |
| P2024_01 | |
|
| P20240101 |
| ||
|
| P20240101 |
| P2024_01_01 | |
|
| P20240101 |
| P2024_01_01 | |
|
| P20240101 |
| P2024_01_01 | |
|
| P20240101 |
| P2024_01_01 | |
Remarque : horodatage, en secondes |
| P2024 |
| P202401 | |
| P2024_01 | |
| P20240101 | |
| P2024_01_01 |
Expressions pour générer des noms de partitions en mode Oracle
Exemple d'expression de partitionnement | Expression de nommage | Aperçu |
|
| P2024 |
| ||
|
| P202401 |
| ||
|
| P202401 |
| P2024_01 | |
|
| P202401 |
| P2024_01 | |
|
| P20240101 |
| ||
|
| P20240101 |
| P2024_01_01 | |
|
| P20240101 |
| P2024_01_01 | |
|
| P20240101 |
| P2024_01_01 | |
|
| P20240101 |
| P2024_01_01 |
Stratégie de suppression de partitions
La suppression de partitions d'une table contenant un index global invalidera cet index. Soyez prudent. Le choix de reconstruire l'index global peut entraîner des problèmes opérationnels en raison de la durée du processus ou de pannes liées à des échecs de reconstruction.
L'option de reconstruction des index globaux n'est disponible qu'en mode Oracle. En mode MySQL, les index globaux sont reconstruits par défaut.
Lorsque vous définissez une stratégie de suppression de partitions, vous devez tenir compte de l'impact des partitions précréées et éviter de supprimer par erreur des partitions historiques. Par exemple, supposons que des partitions soient générées mensuellement pour une table. Pour conserver les partitions générées au cours des 12 derniers mois, définissez Number of Reserved Partitions sur 12. Si la stratégie de création de partitions précrée des partitions pour trois mois, seules les partitions créées au cours des neuf derniers mois et celles des trois prochains mois seront effectivement conservées.
Une stratégie de suppression de partitions s'applique aux partitions existantes. Actuellement, une seule stratégie de suppression est prise en charge : elle conserve les N dernières partitions et supprime les autres.
Voici un exemple :
-
Créez une table nommée order contenant les partitions p2023_01 et p2023_02.
CREATE TABLE `order` ( `time` date NOT NULL, `parti_key` int(11), `name` varchar(120) DEFAULT NULL ) partition by range columns(time, parti_key) (partition p2023_01 values less than ('2023-01-01', 20230101), partition p2023_02 values less than ('2023-02-01', 20230201)) Configurez une stratégie de suppression de partitions qui conserve la dernière partition pour la table order.
L'instruction de suppression de partitions formée sur la base de la stratégie de suppression supprimera la partition p2023_01.
Considérations
La création de partitions pour une table appartenant à un groupe de tables peut échouer ou perturber l'équilibrage de charge. Soyez prudent lorsque vous décidez de configurer une stratégie de création de partitions pour ce type de table.
La création de partitions pour une table au sein d'un groupe de tables peut invalider ce dernier, car les tables d'un même groupe doivent posséder le même nombre de partitions.
La suppression de partitions d'une table contenant un index global invalidera cet index. Soyez prudent. Le choix de reconstruire l'index global peut entraîner des problèmes opérationnels en raison de la durée du processus ou de pannes liées à des échecs de reconstruction.
L'option de reconstruction des index globaux n'est disponible qu'en mode Oracle. En mode MySQL, les index globaux sont reconstruits par défaut.