2011-02-18 6 views
0

J'ai une table qui contient environ 2 millions d'enregistrements, qui sont tous pour le même noeud. Je ne peux pas partitionner en fonction de la date, car les données sont continuellement insérées et supprimées chaque jour.Comment partitionner une table dans MySQL qui a 2 millions d'enregistrements

Les données restantes sont au format chaîne.

Toutes les 15 minutes, l'application prend des sauvegardes à partir de cette table (seulement des données partielles qui ont été collectées pendant 15 minutes); pendant cette opération, la table est verrouillée et impossible d'y accéder.

Quel type de partitionnement puis-je utiliser pour résoudre ce problème?

+1

20 manque n'est pas un très grand nombre. Pouvez-vous expliquer pourquoi vous voulez partitionner, afin que les gens puissent mieux vous aider? – Zimbabao

+2

Pour ceux qui ne connaissent pas la numérotation indienne, 1 lakh = 100.000 (100k). C'est donc une table avec 2 millions de lignes. – Augusto

+1

Pouvez-vous poster la définition de la table? Sans savoir ce qu'il y a dans le tableau, nous ne pouvons pas faire de suggestions. En outre, même si les données sont supprimées et insérées chaque jour, cela ne vous empêche pas de partitionner à date: les partitions précédentes ne deviennent pas soudainement en lecture seule. – Konerak

Répondre

0

Si le problème que vous essayez de résoudre est le verrouillage par la sauvegarde, le partitionnement n'aidera pas à résoudre ce problème.

De plus, il existe de meilleures solutions pour éviter le verrouillage pendant les sauvegardes. Ces solutions fonctionnent aussi bien avec ou sans tables partitionnées. Si vous utilisez des tables InnoDB (which you should), vous pouvez vider les données avec l'isolation des transactions au lieu du verrouillage.

mysqldump --single-transaction mydatabase mytable ... 

Lire le manuel pour plus d'informations: https://dev.mysql.com/doc/refman/5.7/en/mysqldump.html

Vous pouvez également utiliser Percona XtraBackup pour créer une sauvegarde physique au lieu d'un dépôt de données. Cela dépend aussi de l'utilisation des tables InnoDB. Percona XtraBackup est un logiciel gratuit.

Questions connexes