Je suis nouveau avec les partitions. Je ne savais pas qu'il existait, mais je me suis rendu compte quand j'ai essayé de rendre notre nouvelle colonne 'url_hash'
unique dans un tableau dans notre base de données. Et a obtenu le message d'erreur:Comment fonctionne la partition hash (row id + year)?
Un index unique doit inclure toutes les colonnes dans la fonction de partitionnement de la table
Ceci est une base de données créée par une autre personne que je ne connais pas et qui ne sont pas impliqués dans le projet plus.
J'ai essayé de lire la documentation mysql et de lire sur les forums sur Partition. Qu'est-ce que c'est et comment cela fonctionne. Comprendre le but, de "diviser" une table en plusieurs "parties" de sorte qu'il devient plus rapide pour récupérer des données pertinentes. Un exemple commun est de partitionner dans des intervalles de plusieurs années. Mais la plupart des exemples montrent une méthode manuelle. Où vous décidez par exemple moins de trois années spécifiques. Par exemple:
PARTITION BY RANGE (YEAR(separated)) (
PARTITION p0 VALUES LESS THAN (1991),
PARTITION p1 VALUES LESS THAN (1996),
PARTITION p2 VALUES LESS THAN (2001),
PARTITION p3 VALUES LESS THAN MAXVALUE
);
Mais dans notre tableau, les partitions sont créées de cette façon:
PARTITION BY HASH (`feeditemsID` + YEAR(`feeddate`))
PARTITIONS 3;
Qu'est-ce que cela signifie? Comment fonctionne notre partition?
feeditemsID
est l'ID unique pour chaque ligne de notre tableau.
Votre question sur le fonctionnement de partitionnement de hachage, ou sur la façon de corriger l'erreur que vous obtenez? – Barmar
Eh bien, les deux. Je pensais qu'en comprenant comment fonctionnait ce type de partitionnement, je pourrais peut-être éviter les erreurs. J'aime savoir pourquoi une solution fonctionne. –