IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration MySQL Discussion :

[CONFIG] Limiter le temps des alter table


Sujet :

Administration MySQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 99
    Points : 64
    Points
    64
    Par défaut [CONFIG] Limiter le temps des alter table
    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

  2. #2
    Membre habitué

    Profil pro
    Inscrit en
    Février 2009
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2009
    Messages : 129
    Points : 159
    Points
    159
    Par défaut
    Malheureusement, je ne pense pas qu'il existe de solution miracle. Dans certains cas, il est possible de bidouiller le .frm mais ça ne marchera pas pour la modification que tu veux faire.

    Tu peux éventuellement essayer de supprimer des index, lancer ton alter table et remettre les index, mais je ne suis pas persuadé que tu gagnes tu temps.

    Autre piste : si tu as des tables qui ne bougent pas, tu peux faire le alter table sur ton serveur de dev pour ces tables et recharger la table sur ta prod.

    Stéphane

Discussions similaires

  1. Limiter le temps des requetes
    Par cyril_bft dans le forum Administration
    Réponses: 9
    Dernier message: 18/01/2012, 10h55
  2. Concaténer des Alter Table ?
    Par calixte35 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 13/09/2011, 00h10
  3. [ALTER TABLE] Renommer des champs
    Par femtosa dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 04/03/2008, 15h58
  4. Réponses: 13
    Dernier message: 25/05/2007, 13h29
  5. Limiter la profondeur de la table des matières
    Par Mathusalem dans le forum Mise en forme
    Réponses: 2
    Dernier message: 15/05/2006, 15h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo