Bonjour tout le monde.
Nos serveurs SQL, initialement en SQL 3.23 en 2000 sont aujourd'hui arrivés en 5.
A l'époque, le choix retenu pour le type de colonnes des id étaient le mediumint.
Aujourd'hui, nous nous rapprochons de la limite haute de 8 Millions pour ce type de champ. Nous passons donc tout nos champs en INT UNSIGNED.
Le problème, c'est qu'il faut faire ca sur 33 tables contenant beaucoup d'index et plusieurs millions de lignes dans certaines.
Le plus long pour effectuer cette modif sont les étapes "copy to tmp table" et "repair by sorting".
Je souhaiterai donc connaitre les variables à modifier pour effectuer ce changement le + rapidement possible (nous somme actuellement à 2h30 sur notre serveur de test avec al config MySQL de base et AUCUN traffic).
C'est bien sur beaucoup trop long... car une interruption de traffic ne serait qu'une heure et c'est 1000/1500 euros qui s'envolent.
J'ai fait quelques test en mettant ceci :
myisam_sort_buffer_size=512M
tmp_table_size=1024M
max_heap_table_size=1024M
Mais meme pour des tables pesant 100Mo, j'ai toujours ce "copy to tmp table" qui vent plomber le temps d'execution.
La config, meme "déconseillé" ne sera utilisé que le temps de la mise à jour. Nous reviendrons à une config de production après les MAJ effectuées.
Précision : notre serveur de DEV est un opteron dual core avec 2Go de ram
Merci pour votre aide
Partager