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 :

Contrôle des tables non utilisées


Sujet :

Administration MySQL

  1. #1
    Membre régulier
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juin 2010
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2010
    Messages : 210
    Points : 81
    Points
    81
    Par défaut Contrôle des tables non utilisées
    Bonjour,

    Dans le cadre d'une maintenance complète de mon serveur MySQL, j'aimerais savoir, si toutefois c'est possible, s'il y a un moyen de connaitre les tables qui ne sont pas utilisées lors d'une injection de valeurs ou bien lors d'une lecture de ces tables.
    Autrement dit, je cherche les tables qui ne sont plus utilisées (puisque la base évolue sans cesse et que les tables évoluent aussi). Je sais qu'il doit exister des tables non utilisées car plus renseignées et si elles ne sont plus renseignées, elles ne devraient pas non plus être lues.
    Comment le savoir ?
    Merci pour votre aide.

  2. #2
    Membre expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Points : 3 295
    Points
    3 295
    Billets dans le blog
    1
    Par défaut
    salut,

    il me semble que tu peux avoir des stats soit par l'un des outils d'admin soit par des commandes sql, je crois...

    regarde dans les fonctions spéciales pour select des fois... dans la doc mysql
    soyons pensez à mettre quand votre problème est résolu ou à utiliser pour les réponses pertinentes...
    ne posez pas de problématique soi-disant simplifiée sur des problèmes que vous n'êtes pas capable de résoudre par respect pour ceux qui planchent dessus... sinon: et à utiliser pour insérer votre code...

  3. #3
    Membre régulier
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juin 2010
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2010
    Messages : 210
    Points : 81
    Points
    81
    Par défaut
    Justement je n'ai pas trouvé.
    C'est pour ça que je viens ici, au cas où j'aurais raté qq chose et qu'ici vous auriez des idées à me soumettre.

  4. #4
    Membre expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Points : 3 295
    Points
    3 295
    Billets dans le blog
    1
    Par défaut
    tu as cette requête qui te donne par exemple les dates de mise à jours des table d'une bd (`information_schema` ici pour l'exmple):
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SHOW TABLE STATUS FROM `information_schema`;

    le pb c'est de savoir le select équivalent dans la base `information_schema` ou mysql...

    les logs ou la date de modification du fichier pourraient te renseigner si tu y accèdes...
    soyons pensez à mettre quand votre problème est résolu ou à utiliser pour les réponses pertinentes...
    ne posez pas de problématique soi-disant simplifiée sur des problèmes que vous n'êtes pas capable de résoudre par respect pour ceux qui planchent dessus... sinon: et à utiliser pour insérer votre code...

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    331
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 331
    Points : 394
    Points
    394
    Par défaut
    Le meilleur moyen pour connaître les tables qui ont été utilisées ou pas, est d'activer le log général pendant une période donnée. L'analyse du log général te permettra d'identifier les tables qui ne sont plus utilisées. Attention, l'activation du log général peut avoir des impacts sur les performances, et la taille du fichier généré peut grossir trop vite.

    Rachid

  6. #6
    Membre régulier
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juin 2010
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2010
    Messages : 210
    Points : 81
    Points
    81
    Par défaut
    OK Merci pour l'info.
    En fait je n'ai pas de pb avec les perfs puisque la BDD est assez petite. Mais les différentes tables sont vidées et renseignées toutes les 30min.
    En fait, c'est une BDD de consolidation de plusieurs autres BDD distantes.
    C'est une exportation en CVS qui est ensuite injectée dans ma BDD afin d'y effectuer différentes requêtes de vérification de fonctionnement correct des différents serveurs distants. C'est cette consolidation qui renseigne sur la bonne configuration des serveurs distants ou non.
    J'ai tellement de requêtes d'injection ou de lecture que je ne sais plus trop lesquelles sont réellement utilisées ou non. C'est pourquoi je cherchais un moyen de le savoir.
    J'avais mis en place le LOG général dont tu parles mais je ne sais pas trop quoi en faire ni comment m'en servir. En fait celui-ci n'a jamais été tronqué et du coup, il est énorme, comme tu dois t'en douter. Alors pour le lire....
    Existe-t-il un moyen simple (genre un freeware ou autre) qui permettrait d'indiquer ce qui va ou ne va pas sur le serveur ?

  7. #7
    Membre expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Points : 3 295
    Points
    3 295
    Billets dans le blog
    1
    Par défaut
    dans la bd mysql tu as les différents log il me semble donc tu peux trier ensuite...

    tu peux désactiver le log, tronquer les tables dans mysql puis le réactiver au pire
    soyons pensez à mettre quand votre problème est résolu ou à utiliser pour les réponses pertinentes...
    ne posez pas de problématique soi-disant simplifiée sur des problèmes que vous n'êtes pas capable de résoudre par respect pour ceux qui planchent dessus... sinon: et à utiliser pour insérer votre code...

  8. #8
    Membre régulier
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juin 2010
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2010
    Messages : 210
    Points : 81
    Points
    81
    Par défaut
    ho la !!
    alors là suis perdu.
    Je ne suis pas DBA donc tout ça se complique qq peu pour moi.
    Comment faire svp ?
    En fait, sorti des requêtes que je fais dans ma BDD je ne sais pas trop comment ca fonctionne, MySQL, Information_Shema, etc...

  9. #9
    Membre expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Points : 3 295
    Points
    3 295
    Billets dans le blog
    1
    Par défaut
    tu as 2 db systèmes sur ton serveur mysql:
    information_schema, description de tes schéma de bd, routines, etc...
    mysql, routines compilées, table contenant divers logs, etc...
    soyons pensez à mettre quand votre problème est résolu ou à utiliser pour les réponses pertinentes...
    ne posez pas de problématique soi-disant simplifiée sur des problèmes que vous n'êtes pas capable de résoudre par respect pour ceux qui planchent dessus... sinon: et à utiliser pour insérer votre code...

  10. #10
    Membre régulier
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juin 2010
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2010
    Messages : 210
    Points : 81
    Points
    81
    Par défaut
    OK Mais je ne vois pas vraiment quoi en faire

  11. #11
    Membre expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Points : 3 295
    Points
    3 295
    Billets dans le blog
    1
    Par défaut
    une fois les logs activés, tu devrais regarder ce qu'il se passe dans les tables:
    • events, files, profiling et statistics de information_schema
    • general_log, slow_log de mysql
    soyons pensez à mettre quand votre problème est résolu ou à utiliser pour les réponses pertinentes...
    ne posez pas de problématique soi-disant simplifiée sur des problèmes que vous n'êtes pas capable de résoudre par respect pour ceux qui planchent dessus... sinon: et à utiliser pour insérer votre code...

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    331
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 331
    Points : 394
    Points
    394
    Par défaut
    J'avoue que ce n'est pas évident d'analyser un gros fichier plein d'informations comme le log general.
    Par contre, il y a quelques petits utilitaires qui te permettront de réaliser cette tâche plus facilement :

    http://forge.mysql.com/tools/tool.php?id=134

    ou
    http://hackmysql.com/mysqlsla

    Rachid

  13. #13
    Membre régulier
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juin 2010
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2010
    Messages : 210
    Points : 81
    Points
    81
    Par défaut
    Merci pour ces infos.
    Je suis sous Windows et mysqlsa fonctionne sous Linux.
    Sinon j'ai essayé avec l'autre mais là c'est galère, c'est un script perl (que j'arrive à lancer). Je le vois me remonter à l'écran tout ce qu'il y a dans le LOG mais au bout d'un moment ça plante carrément, probablement log trop gros

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    331
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 331
    Points : 394
    Points
    394
    Par défaut
    Rien ne t'empêche de copier ton fichier log sur une machine linux et d'utiliser les scripts cités plus haut

    Rachid

  15. #15
    Membre régulier
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juin 2010
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2010
    Messages : 210
    Points : 81
    Points
    81
    Par défaut
    oui c'est vrai mais je n'ai pas de machine Linux sous la main comme ça à disposition

Discussions similaires

  1. [MySQL] ne pas tenir compte des variables non utilisées pour éviter les bugs
    Par canary dans le forum PHP & Base de données
    Réponses: 17
    Dernier message: 26/03/2009, 08h46
  2. Interroger des tables non liées
    Par jeanphi31 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 24/02/2009, 08h55
  3. Donnée d'une table non utilisée dans d'autres
    Par jgfa9 dans le forum Requêtes
    Réponses: 2
    Dernier message: 21/01/2008, 15h03
  4. [VBA][02]Détection des variables non utilisées
    Par cluis dans le forum VBA Access
    Réponses: 1
    Dernier message: 22/03/2007, 10h20
  5. requete sur des tables non liées
    Par matesp dans le forum Access
    Réponses: 3
    Dernier message: 03/05/2006, 17h01

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