J'ai une table de base de données mysql que je veux partitionner par date, en particulier par mois & année. Cependant, lorsque de nouvelles données sont ajoutées pour un nouveau mois, je ne veux pas avoir besoin de mettre à jour manuellement la base de données. Lorsque je crée initialement ma base de données, j'ai des données dans Nov 09, Dec 09, Jan 10, etc Maintenant, quand février commence, j'aimerais une partition de 10 février créée automatiquement. Est-ce possible?base de données mysql partitionnement automatique
Répondre
Il y a quelques solutions là-bas, si vous voulez une solution complète, vérifier post out on kickingtyres. C'est une combinaison basique d'une procédure stockée gérant l'analyse et la création de partition (avec un peu de journalisation!). Tout ce que vous devez faire est de l'ajuster à votre type de partition (l'exemple utilise une partition bigint) et planifier la procédure à exécuter avec le planificateur d'événements MySQL.
J'aime le concept de la procédure stockée pour la création de partition. –
Le lien de kickingtyres est cassé. –
J'ai mis à jour le lien avec une archive.org copie – Benjamin
oui, vous pourriez aimer la fonctionnalité de partitionnement améliorée dans 5.5:
http://dev.mysql.com/tech-resources/articles/mysql_55_partitioning.html
+1 super lien ... merci –
Aurais-je besoin de configurer un déclencheur chaque mois pour ajouter une nouvelle partition pour ce mois? Puisque je ne veux pas définir tous les mois/années à l'avance ... –
@Jeff - Je ne crois pas, rien noté dans cet article de toute façon. Ce sont d'excellentes améliorations, mais cela ne résoudra pas votre problème actuel ... celui auquel j'ai été confronté lorsque SQL Server a ajouté des partitions au début, PITA à coup sûr. –
Je ferai ce que l'autre fait (poster un lien) Quick Introdunction to MySQL Partitioning
(voir page 50 pour ce que vous avez besoin - partition par date) Edit: Je relis votre message plus attentivement - si vous voulez changer partitions par mois pourquoi ne pas créer un Mysql event
qui fait cela
- 1. partitionnement mysql
- 2. stratégie de partitionnement de base de données
- 3. MySQL table de partitionnement
- 4. partitionnement mysql
- 5. Partitionnement de base de données SQL 2005 pour SharePoint
- 6. Partitionnement dynamique de base de données Sql Server
- 7. max_rows sur le partitionnement mysql
- 8. Partitionnement de données parititionné/Réduction
- 9. Ajustement automatique Entrées de base de données?
- 10. Synchronisation automatique de base de données
- 11. Rails: Adaptateur de base de données à détection automatique
- 12. Clés étrangères vs partitionnement
- 13. Base de données Wordpress dans la base de données MySQL?
- 14. Partage automatique de MySQL?
- 15. Partitionnement de script/table SQL
- 16. Sauvegarde automatique de la base de données MySQL et e-mail via cPanel cron
- 17. mysql incrémentation automatique de
- 18. MySQL - Comment créer un champ d'incrémentation automatique dans la base de données?
- 19. Comment copier une table d'une base de données mysql vers une autre base de données mysql
- 20. Partitionnement Oracle
- 21. Problème de partitionnement industriel
- 22. Partitionnement de serveur SQL
- 23. Partitionnement de tables
- 24. problème de base de données PHP MySQL
- 25. Migration de base de données MySQL UTF8
- 26. question base de données de conception MySQL
- 27. requêtes de base de données MySQL - vitesse
- 28. Synchronisation de la base de données MySQL
- 29. Configuration de la base de données MySQL
- 30. Base de données MySQL de mots anglais?
Je ne sais pas si c'est la meilleure idée. Chaque fois que vous modifiez des partitions, vous allez essentiellement réécrire la totalité de la table. Cela peut prendre beaucoup de temps et de ressources. – Mchl
@Mchl si vous avez une meilleure idée, je serais heureux de l'entendre. Tu as raison, c'est assez intensif (plus que je ne le voudrais), mais si ça ne fonctionne qu'une fois par mois ce n'est pas trop mal - surtout quand j'ai besoin de faire des requêtes régulières comme 'sélectionner le 3ème jour du mois dernier'. – Benubird
"Chaque fois que vous modifiez des partitions, vous allez essentiellement réécrire toute la table": pas du tout vrai. Ajouter des partitions ou supprimer des partitions revient à créer/supprimer une table. Essentiellement instantané. Seule la modification d'une partition existante * contenant déjà des données * est potentiellement lente. Donc, si vous créez une nouvelle partition pour le mois prochain avant d'y insérer des données, c'est très rapide. – jssebastian