3 votes

Mysql : Partitionnement sans clé primaire

J'ai le tableau suivant avec une quantité ÉNORME de données, c'est pourquoi je veux le diviser ou le partitionner. Le problème est que je veux partitionner par une colonne qui n'est pas une clé primaire : project_id. Dans mon cas, il y aura MAXIMUM 2 ou 3 ids de projet différents...

- id (PRIMARY KEY, AUTO INCREMENT)
- project_id (INT)
- username (UNIQUE)
- username_md5 (UNIQUE)
(- ... more but irrelevant columns)

Comme vous pouvez le voir, j'ai 3 colonnes dont je dois garantir l'UNIQUE (id, username, username_md5). Maintenant, je voudrais faire un partitionnement RANGE sur la colonne project_id. La seule solution que j'ai trouvée est de créer une PRIMARY KEY à 4 colonnes pour toutes ces colonnes (le partitionnement exige que toutes les colonnes dans l'expression de partitionnement fassent partie de chaque clé unique).

Maintenant, je me demande

A) une clé primaire à 4 colonnes est-elle parfaite et utilisable ?

B) existe-t-il une meilleure solution pour mon partitionnement ?

C) sinon je le ferais manuellement en créant une table "dynamique" pour chaque project_id que j'ai, est-ce que ce serait la solution la plus simple ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X