Je veux courir ceci sur ma table:
ALTER TABLE table_name MODIFY col_name VARCHAR(255)
3 Réponses :
Eh bien, vous avez besoin
ALTER TABLE table_name CHANGE col_name new_name VARCHAR(255)
Oui. Je ne peux pas me permettre d'avoir des temps d'arrêt de 50 minutes, car toutes les lignes seront verrouillées pendant cela, ce qui empêchera d'autres actions (CRUD) sur cette table.
Euh. Oh. Cela signifie que si vous copiez la table, les lignes neuves et modifiées apparaîtront dans l'ancienne table pendant que vous réorganisez le nouveau. Si tel était mon projet, j'essayais maintenant de décider de la manière dont il est important de modifier ce nom de colonne.
Oui. Je peux faire une chose. Annoncez les temps d'arrêt de 1HR et apportez ces modifications lorsque la charge est inférieure. Probablement à minuit. Cependant, merci pour vos intrants.
Annoncer deux heures de temps d'arrêt. De cette façon, vous n'habirez pas tout le monde, mais aussi de les ravir lorsque vous vous faites tôt avec votre temps d'arrêt.
Vous pouvez traiter avec le changement de schéma sans temps d'arrêt en utilisant du chêne. P>
Oak-Online-Alter -Table Copies Schéma de la table d'origine, applique vos modifications, puis copie les données. Les opérations de crud peuvent toujours être invoquées alors que OAK met des déclencheurs sur la table d'origine afin qu'aucune donnée ne soit perdue pendant l'opération. P>
Veuillez vous reporter à Autre question où l'auteur de OAK donne une explication détaillée sur ce mécanisme et suggère également d'autres outils. p>
Une autre variante à utiliser Percona Toolkit https://www.percona.com/doc /percona-toolkit/2.2/pt-online-schema-change.html P>
Nope, ça va être lent. Une déclaration d'alter est une action unique. Attendez-le et j'espère que vous n'avez pas besoin de le refaire.
Table énorme? non. Très grand? Oui.