Bonjour tout le monde,
Cela fait quelques temps que je m'acharne à trouver un moyen de rendre des opérations de type "ALTER TABLE" possibles sur une table de grande taille sans succès.
Je vous explique le topo :
La table concernée a plus de 1 800 000 entrées, avec de nombreux champs TEXT pour un total de plus de 5 GB de données (moteur de stockage InnoDB).
Le serveur est configuré plus ou moins à la my-huge.cnf (avec quelques buffers plus grands), est entièrement dédié à MySQL mais n'a qu'1 GB de RAM. En soi, quelque soit la requête, sur une petite ou large partition de données, le serveur est assez rapide à répondre (compte tenu qu'on sait quand utiliser les index ou pas...). Ce sont les opérations "ALTER TABLE" qui prennent une éternité.
Particulièrement hier je tentais de retirer une colonne (tinyint(1)) de la table en question (enfin... Une copie de backup), après environ 20 à 30 minutes le client se déconnecte:
ERROR 2013 (HY000) at line 3: Lost connection to MySQL server during query
J'ai essayé de verrouiller les tables auparavant, c'est sans effet.
Il y a quelques mois j'ai pu supprimer quelques index de cette table. L'opération a pris plus de 2h mais elle a abouti.
Je m'en remet donc à votre expertise... Est-ce que quelqu'un sait comment mener à bien ces opérations sur une table aussi volumineuse ?
Un grand merci,
John.
Partager