ALTER TABLE sans verrouillage de la table?

Lors d'une instruction ALTER TABLE dans MySQL, l'ensemble du tableau est verrouillé en lecture pour la durée de l'instruction. Si c'est un grand tableau, cela signifie que d'insérer ou de mettre à jour les déclarations peuvent être verrouillés pour un looooong moment. Est-il un moyen de faire un "alter", comme l'ajout d'une colonne dans une telle manière que la table est toujours mis à jour tout au long du processus?

Surtout je suis intéressé par une solution de MySQL, mais je serais intéressé par d'autres SGBDR si MySQL ne peut pas le faire.

Pour préciser, mon but est simplement d'éviter les temps d'arrêt lorsqu'une nouvelle fonctionnalité qui nécessite une colonne de la table est poussé à la production. Tout schéma de base de données sera changer au fil du temps, c'est juste un fait de vie. Je ne vois pas pourquoi nous devrions accepter que ces changements doivent inévitablement entraîner des temps d'arrêt; c'est tout simplement faible.

  • Me demande combien de fois vous serez en modifiant la table?
  • À mon humble avis, schéma de base de données changements sont liés à l'ensemble des nouvelles versions - ils n'obtiennent pas roulé de façon sporadique, à l'instar d'autres changements. C'est forcément une grosse affaire.
  • plus de 0 fois fait cette question est légitime, surtout si le temps d'arrêt de votre système de coût de la vie ou beaucoup d'argent. Et dans tous les cas, les nouvelles exigences en matière de logiciel ne montrent parfois.
InformationsquelleAutor Daniel | 2009-01-21