On me donne chaque semaine une source de données que je vais analyser et mettre dans une base de données. Les données ne changeront pas beaucoup de semaine en semaine, mais je devrais mettre à jour la base de données sur une base régulière. Outre cette mise à jour hebdomadaire, les données sont statiques. Pour l'instant, la reconstruction de toute la base de données n'est pas un problème, mais éventuellement cette base de données sera en ligne et les gens pourraient interroger la base de données pendant que je la reconstruis. La quantité de données n'est pas petite (quelques centaines de mégaoctets), donc elle ne se chargera pas instantanément, et personnellement je veux un peu plus d'un système infaillible que "J'espère que personne ne questionne alors que la base de données est en désordre".Quelle est la meilleure façon de mettre à jour (ou de remplacer) une table de base de données entière sur une machine en direct?
J'ai réfléchi à plusieurs façons de résoudre ce problème et je me demandais quelle serait la meilleure méthode. Voici mes idées à ce jour:
Au lieu de remplacer des tables entières, requête pour la différence entre ma base de données actuelle et ce que je veux placer dans la base de données. Cela semble toutefois être une quantité de travail inutile.
Créer des tables de données fictives, puis effectuer un changement de nom de table (ou faire pointer le code du serveur vers les nouvelles tables de données). Il suffit de dire aux utilisateurs que le site est en cours de maintenance et de mettre le système hors ligne pendant quelques minutes. (Ce n'est pas préférable pour des raisons évidentes, mais si c'est de loin la meilleure réponse, je suis prêt à accepter cela.)
Réflexions?
Un système de base de données particulier que vous avez en tête? –
Actuellement, j'utilise MySQL, mais je peux finir par utiliser PostgreSQL. –