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 :

Table toujours volumineuse après suppression des entrées


Sujet :

Administration MySQL

  1. #1
    Membre à l'essai
    Table toujours volumineuse après suppression des entrées
    Bonjour à tous,

    Après recherches sur le forum, je n'arrive pas à trouver un sujet qui correspond à mon problème, je me permets donc d'ouvrir un nouveau sujet.

    J'administre plusieurs sites. Parmi ces sites, il y en a un pour lequel j'ai du purger la table "users" (site ancien monté sous joomla!) car la base était devenu bien trop volumineuse.
    J'ai donc vidé les utilisateurs créés par nos amis russes (plus de 910 000 entrées) via une commande DELETE WHERE.

    Pourtant, ma table reste très volumineuse (plus de 64 Mo !). Alors que je n'ai plus que mon compte utilisateur dans cette table. Lorsque je consulte cette dernière rien n'indique qu'il reste quoique ce soit dedans à part mon compte "user".
    Y a-t-il une étape que j'ai oublié après la commande DELETE ?
    Y a-t-il un système de poubelle à vider ?

    Pardonnez ma question qui peut paraître bête mais je suis totalement néophyte et je ne comprends pas.

    Merci par avance.
    Cordialement.

    Ludo

  2. #2
    Rédacteur

    C'est normal. Quand vous purgez un radiateur il ne se dégonfle pas !

    DBA c'est un métier… Il faut se former !

    A +
    Cette signature n'a pas pu être affichée car elle comporte des erreurs.

  3. #3
    Membre à l'essai
    Ça m'aide beaucoup.
    Merci.

    Entre temps j'ai trouvé la solution.

  4. #4
    Membre actif
    Citation Envoyé par SQLpro Voir le message
    C'est normal. Quand vous purgez un radiateur il ne se dégonfle pas !

    DBA c'est un métier… Il faut se former !

    A +
    En partant de ce principe, supprimons les forums, ils ne servent à rien.
    Pas cool comme réaction.
    Tout le monde n'est pas aussi bon, expert et génial que vous !

  5. #5
    Modérateur

    Citation Envoyé par Oui Agence Voir le message
    Après recherches sur le forum, je n'arrive pas à trouver un sujet qui correspond à mon problème
    Citation Envoyé par Oui Agence Voir le message
    j'ai trouvé la solution.
    Ce serait utile de donner cette solution pour ceux qui passeront après vous avec le même problème...
    Cette signature n'a pas pu être affichée car elle comporte des erreurs.

  6. #6
    Membre actif
    Citation Envoyé par Oui Agence Voir le message
    Ça m'aide beaucoup.
    Merci.

    Entre temps j'ai trouvé la solution.
    Pourriez-vous partager votre solution s'il vous plait ?
    merci

  7. #7
    Membre à l'essai
    Bonjour, franckcl j'ai utilisé la commande :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
     OPTIMIZE TABLE


    SQLpro, je ne comprends pas trop la conception que vous avez d'un forum, si ce n'est pas celle de s'entraider et de transmettre votre savoir.
    Le temps que vous avez pris à répondre de manière hautaine et inappropriée à mon post aurait tellement été plus utile si vous aviez pris la peine d'être constructif.
    Alors, effectivement, vous avez raison, "DBA" c'est un métier, mais plombier-chauffagiste aussi. Visiblement, ce dernier n'est pas le votre non plus car personne n'a jamais vu un radiateur se dégonfler. Tenez-vous donc à être suffisant et pédant quand vous parlez de "votre" métier. Vous vous ridiculisez encore plus quand vous parler d'autre chose. Il semblerait que vous soyez formateur… Vous montrez une telle aisance à la pédagogie que vos formations doivent être passionnantes ! La prochaine fois, abstenez vous de répondre, vous ferez gagner du temps à beaucoup de gens, dont vous (votre temps doit être si précieux) !

    Cordialement.

  8. #8
    Rédacteur

    Citation Envoyé par Oui Agence Voir le message
    ...
    SQLpro, je ne comprends pas trop la conception que vous avez d'un forum, si ce n'est pas celle de s'entraider et de transmettre votre savoir.
    Le temps que vous avez pris à répondre de manière hautaine et inappropriée à mon post aurait tellement été plus utile si vous aviez pris la peine d'être constructif.
    Alors, effectivement, vous avez raison, "DBA" c'est un métier, mais plombier-chauffagiste aussi. Visiblement, ce dernier n'est pas le votre non plus car personne n'a jamais vu un radiateur se dégonfler. Tenez-vous donc à être suffisant et pédant quand vous parlez de "votre" métier. Vous vous ridiculisez encore plus quand vous parler d'autre chose. Il semblerait que vous soyez formateur… Vous montrez une telle aisance à la pédagogie que vos formations doivent être passionnantes ! La prochaine fois, abstenez vous de répondre, vous ferez gagner du temps à beaucoup de gens, dont vous (votre temps doit être si précieux) !

    Cordialement.
    Vous avez visiblement pas compris mon propos….
    Lorsque vous videz le contenu d'un récipient (et une table relationnelle est un récipient), vous ne diminuez en aucune manière la taille de ce récipient. Que ce récipient soit une bouteille, un radiateur ou une table relationnelle, la purge du contenu, c'est à dire le vidage de ce qu'il contient, ne modifie ni la bouteille, ni le radiateur ni la table…

    C'est pourquoi je vous disait :

    C'est normal. Quand vous purgez un radiateur il ne se dégonfle pas !

    Il n'y a d'ailleurs aucun intérêt à diminuer le conteneur, car les opérations d'augmentation comme de diminution de la taille du conteneur (dans notre cas, la table), sont des opérations très lourdes et donc couteuse, et généralement parfaitement inutiles… En effet, les bases de données étant par nature en expansion, la croissance de la volumétrie est donc logique et diminuer le récipients obligera à l'augmenter tôt au tard… Vous aurez donc la double peine :
    le travail inutile que vous avez entrepris avec la commande OPTIMZE (dont le nom n'a rien à voir avec la fonction comme souvent dans MySQmerde...);
    les couteuses opérations de croissance nécessaire dès qu'il y aura de nouveaux INSERT ou UPDATE

    C'est pourquoi aussi je disait que DBA c'est un métier, et qu'il faut s'y former pour éviter de telles grossières erreurs !

    A +
    Cette signature n'a pas pu être affichée car elle comporte des erreurs.

  9. #9
    Expert éminent sénior
    Salut à tous.

    Citation Envoyé par Oui Agence
    Y a-t-il une étape que j'ai oublié après la commande DELETE ?
    Si vous désirez réduire la volumétrie de votre table, vous avez le choix entre :
    1) utiliser la commande suivante :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    OPTIMIZE TABLE nom_de_votre_table;

    2) de le faire manuellment :
    --> en déchargeant votre table en faisant un export,
    --> de détruire votre table,
    --> de la recréer en faisant de la compression de données (ce que j'ai mis en rouge) :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CREATE TABLE `test`
    ( ...
    ) ENGINE=InnoDB
      DEFAULT CHARSET=`latin1` COLLATE=`latin1_general_ci`
      ROW_FORMAT=COMPRESSED;

    --> de recharger votre table en faisant un import.

    Citation Envoyé par Oui Agence
    Pardonnez ma question qui peut paraître bête mais je suis totalement néophyte et je ne comprends pas.
    MySql reserve de l'espace (tablepsace) pour stocker les données.
    Si vous supprimez des lignes, l'espace n'est pas réduite pour autant.
    La seule façon de la réduire est ce que j'ai indiqué ci-dessus.

    La remarque de SQLPRO est tout à fait juste !

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  10. #10
    Membre à l'essai
    Merci beaucoup pour votre explication claire et précise.