1. ✅ Apprenez une METHODE qui marche pour votre SEO ! Formation à distance avec Olivier Duffez et Fabien Facériès + aide pour prise en charge du financement
    Rejeter la notice

Requête SQL beaucoup plus lente malgré un serveur kimsufi 250g plus puissant

Discussion dans 'Administration d'un site Web' créé par mikaweb2011, 21 Septembre 2011.

  1. mikaweb2011
    mikaweb2011 WRInaute discret
    Inscrit:
    21 Janvier 2011
    Messages:
    65
    J'aime reçus:
    0
    Bonjour,

    J'avais un hébergement mutualisé chez ovh. (offre Business) voila le lien http://www.ovh.com/fr/hebergement_mutualise/

    Et j'ai pris un nouveau serveur kimsufi 250g.http://www.kimsufi.com/fr/

    Le problème n'est pas là ;-) J'ai bien reçu mon nouveau serveur et je l'ai installé et il fonctionne à merveille.

    Ma base de donnée étant sur mon premier serveur j'ai décidé de transférer la base de donnée et de changer la connexion .

    Tout fonctionne. Mais...

    Si je fais cette requete sur mon ancien serveur:

    UPDATE OFFRES SET REF='18' WHERE ID='1'

    Voici la notification: Nombre d'enregistrements affectés : 1 (Traitement en 0.0013 sec.)

    Sur le nouveau serveur:

    UPDATE OFFRES SET REF='18' WHERE ID='1'

    Nombre d'enregistrements affectés : 1 (Traitement en 0.1119 sec.)

    Ce que je comprend pas c'est que j'ai fais un import/export de ma base de donnée donc je n'ai pas touché aux index.

    Et c'est seulement sur ma table OFFRES que le serveur mysql rame à fond. Et pas qu'un peu...

    Que faire dans ce cas pour accélérer le réponse de chaque requête envoyé?

    NB: La taille sur disque de la table OFFRES =250MO qui n'est pas grand .

    Cdt.
     
  2. Marie-Aude
    Marie-Aude WRInaute accro
    Inscrit:
    5 Juin 2006
    Messages:
    16 368
    J'aime reçus:
    2
    Euh quand même un peu grand non ^^
    vérifie tes index, as tu transféré tous les objets de la base et pas seulement les tables ?
    Réparation, optimisation...
     
  3. le-bon-plan.com
    le-bon-plan.com WRInaute discret
    Inscrit:
    1 Juin 2007
    Messages:
    100
    J'aime reçus:
    0
    Les bases de données actuel comme par exemple Oracle dispose de calculs statistiques permettant d'optimiser automatiquement les requêtes sql en optant pour le plan d’exécution le plus efficace.

    Dès lors, il est probable qu’après installation de ta nouvelle BD, les requêtes mettent légèrement plus de temps à être exécutés. Tout devrait revenir à la normale d'ici quelques temps après le calcul des stats par la BD.

    PS: Je ne sais pas si MySql fonctionne via des mécanismes d'optimisations automatique comme Oracle, mais si c'est le cas, le problème pourrait s'expliquer ainsi.
     
  4. salva
    salva WRInaute accro
    Inscrit:
    16 Avril 2006
    Messages:
    3 577
    J'aime reçus:
    0
    As-tu optimisé le serveur en fonction de son utilisation ? Apache, mysql, PHP ....
     
  5. mikaweb2011
    mikaweb2011 WRInaute discret
    Inscrit:
    21 Janvier 2011
    Messages:
    65
    J'aime reçus:
    0
    Bonjour,

    Non j'ai rien fais pour optimiser le serveur.

    Sinon comment faire l'optimisation dans ce cas ?

    Cdt.
     
  6. salva
    salva WRInaute accro
    Inscrit:
    16 Avril 2006
    Messages:
    3 577
    J'aime reçus:
    0
    Ce sera long et fastidieux si tu n'as aucune base en administration serveur mais tu peux débuter par ceci.
    Ensuite tu pourras affiner tes recherches sur le forum OVH en integrant le système d’exploration installé dans tes requêtes.

    Désolé de te renvoyer ainsi sur un lien mais tu n'échapperas pas à un minimum de formation pour administrer le serveur et corriger tous les aléas que tu rencontreras de façon certaine.
     
  7. mikaweb2011
    mikaweb2011 WRInaute discret
    Inscrit:
    21 Janvier 2011
    Messages:
    65
    J'aime reçus:
    0
    Bonjour,

    est ce que ce lenteur peu être dû suite à un envoi massive d'emailing chaque jour?


    D'autre façon l'envoi d'emailing peut ralentir le fonctionnement du serveur ?


    Cdt.
     
  8. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 057
    J'aime reçus:
    294
  9. mikaweb2011
    mikaweb2011 WRInaute discret
    Inscrit:
    21 Janvier 2011
    Messages:
    65
    J'aime reçus:
    0

    Vraiment je suis débutant dans la gestion et configuration des serveurs dédiés.

    Comment je peut explorer les fichiers sur un serveur dedié (exemple le fichier php.ini) , je ne trouve pas ca sur l'interface de plesk.


    Aperçu sur niveau des charges & real monitoring

    http://imageshack.us/photo/my-images/841/mrtgproxy.png/

    http://imageshack.us/f/26/rtm326332412966.png/

    http://imageshack.us/photo/my-images/546/rtm798044592448.png/

    http://imageshack.us/photo/my-images/801/sansre1xr.png/

    Cdt.
     
  10. mikaweb2011
    mikaweb2011 WRInaute discret
    Inscrit:
    21 Janvier 2011
    Messages:
    65
    J'aime reçus:
    0
    J'ai installé MySQLTuner-perl et voila ce que j'ai obtenu :

    -------- General Statistics --------------------------------------------------
    [--] Skipped version check for MySQLTuner script
    [OK] Currently running supported MySQL version 5.0.77
    [OK] Operating on 64-bit architecture

    -------- Storage Engine Statistics -------------------------------------------
    [--] Status: -Archive +BDB -Federated +InnoDB -ISAM -NDBCluster
    [--] Data in MyISAM tables: 4M (Tables: 515)
    [--] Data in InnoDB tables: 203M (Tables: 155)
    [!!] BDB is enabled but isn't being used
    [!!] Total fragmented tables: 8

    -------- Security Recommendations -------------------------------------------
    [OK] All database users have passwords assigned

    -------- Performance Metrics -------------------------------------------------
    [--] Up for: 41d 0h 57m 4s (20M q [5.886 qps], 2M conn, TX: 8B, RX: 1B)
    [--] Reads / Writes: 91% / 9%
    [--] Total buffers: 34.0M global + 2.7M per thread (100 max threads)
    [OK] Maximum possible memory usage: 309.0M (15% of installed RAM)
    [OK] Slow queries: 0% (55/20M)
    [OK] Highest usage of available connections: 20% (20/100)
    [OK] Key buffer size / total MyISAM indexes: 8.0M/6.2M
    [OK] Key buffer hit rate: 99.8% (34M cached / 52K reads)
    [!!] Query cache is disabled
    [OK] Sorts requiring temporary tables: 0% (0 temp sorts / 858K sorts)
    [!!] Joins performed without indexes: 113010
    [OK] Temporary tables created on disk: 4% (123K on disk / 2M total)
    [!!] Thread cache is disabled
    [!!] Table cache hit rate: 0% (64 open / 47K opened)
    [OK] Open file limit used: 5% (57/1K)
    [OK] Table locks acquired immediately: 99% (11M immediate / 11M locks)
    [!!] InnoDB data size / buffer pool: 203.7M/8.0M

    -------- Recommendations -----------------------------------------------------
    General recommendations:
    Add skip-bdb to MySQL configuration to disable BDB
    Run OPTIMIZE TABLE to defragment tables for better performance
    Enable the slow query log to troubleshoot bad queries
    Adjust your join queries to always utilize indexes
    Set thread_cache_size to 4 as a starting value
    Increase table_cache gradually to avoid file descriptor limits
    Variables to adjust:
    query_cache_size (>= 8M)
    join_buffer_size (> 128.0K, or always use indexes with joins)
    thread_cache_size (start at 4)
    table_cache (> 64)
    innodb_buffer_pool_size (>= 203M)
     
  11. YoyoS
    YoyoS WRInaute accro
    Inscrit:
    14 Septembre 2006
    Messages:
    3 249
    J'aime reçus:
    0
    Tout est dit. Ajoute des indexes comme te l'a conseillé Marie-Aude au début de ce topic.
     
  12. salva
    salva WRInaute accro
    Inscrit:
    16 Avril 2006
    Messages:
    3 577
    J'aime reçus:
    0
    Avec Winscp (sous Windows).
     
  13. mikaweb2011
    mikaweb2011 WRInaute discret
    Inscrit:
    21 Janvier 2011
    Messages:
    65
    J'aime reçus:
    0
    J'ai ajouté ce commande mysql> SET GLOBAL query_cache_size = 1000000;pour mettre les requetes en cache.

    J'ai remarqué que au début la page se charge troooop long et après elle sera très rapide.Bon tt la page est devenu en cache.

    C'est normal ?
     
  14. Julia41
    Julia41 WRInaute passionné
    Inscrit:
    31 Août 2007
    Messages:
    1 779
    J'aime reçus:
    0
    Attention, tu compares ce qui n'est pas comparable :p
    Sur le mutu, tu as un HG partagé (mais optimisé par des pros)
    Sur ton kimsufi, tu as des disques durs hyper lents, non optimisés.

    Suit les recommandations de ton tuning-primer/mysqltuner.
    Code:
    query_cache_size (>= 8M)
    join_buffer_size (> 128.0K, or always use indexes with joins)
    thread_cache_size (start at 4)
    table_cache (> 64)
    innodb_buffer_pool_size (>= 203M)
    Donc dans ton my.cnf:
    Code:
    query_cache_size = 64M
    table_cache = 512
    innodb_buffer_pool_size = 256M
    Les autres consommeront trop de RAM comparé à ce qu'il y a sur un kimsufi. (tu peux quand même monter ton join_buffer_size à 256Ko sans trop de soucis).

    Je pense que ta table en question est en innoDB avec un innoDB mal configuré, ça devrait bien augmenter les perfs de changer le pool size
     
  15. mikaweb2011
    mikaweb2011 WRInaute discret
    Inscrit:
    21 Janvier 2011
    Messages:
    65
    J'aime reçus:
    0
    Voila après plusieurs tentative de modification j'obtiens toujours des alertes.
    mysql> SET GLOBAL query_cache_size = 60000000;
    mysql> SET SESSION query_cache_type = 1;
    mysql> SET GLOBAL join_buffer_size =20000000;
    mysql> SET GLOBAL query_cache_limit =60000000;



    *********************************************************************************************************

    >> MySQLTuner 1.2.0 - Major Hayden <major@mhtx.net>
    >> Bug reports, feature requests, and downloads at http://mysqltuner.com/
    >> Run with '--help' for additional options and output filtering

    -------- General Statistics --------------------------------------------------
    [--] Skipped version check for MySQLTuner script
    [OK] Currently running supported MySQL version 5.0.77
    [OK] Operating on 64-bit architecture

    -------- Storage Engine Statistics -------------------------------------------
    [--] Status: -Archive +BDB -Federated +InnoDB -ISAM -NDBCluster
    ERROR 1018 (HY000) at line 1: Can't read dir of '.' (errno: 24)
    ERROR 1018 (HY000) at line 1: Can't read dir of '.' (errno: 24)
    [!!] InnoDB is enabled but isn't being used
    [!!] BDB is enabled but isn't being used
    Argument "" isn't numeric in numeric gt (>) at ./mysqltuner.pl line 549 (#1)
    (W numeric) The indicated string was fed as an argument to an operator
    that expected a numeric value instead. If you're fortunate the message
    will identify which operator was so unfortunate.

    [OK] Total fragmented tables:

    -------- Security Recommendations -------------------------------------------
    ERROR 1016 (HY000) at line 1: Can't open file: './mysql/user.frm' (errno: 24)
    [OK] All database users have passwords assigned
    ERROR 1018 (HY000) at line 1: Can't read dir of '.' (errno: 24)

    -------- Performance Metrics -------------------------------------------------
    [--] Up for: 41d 7h 25m 40s (20M q [5.860 qps], 2M conn, TX: 8B, RX: 1B)
    [--] Reads / Writes: 91% / 9%
    [--] Total buffers: 206.2M global + 21.7M per thread (100 max threads)
    [!!] Maximum possible memory usage: 2.3G (120% of installed RAM)
    [OK] Slow queries: 0% (92/20M)
    [OK] Highest usage of available connections: 20% (20/100)
    Argument "" isn't numeric in numeric eq (==) at ./mysqltuner.pl line 735 (#1)
    [!!] None of your MyISAM tables are indexed - add indexes immediately
    [!!] Query cache efficiency: 0.1% (12K cached / 9M selects)
    [OK] Query cache prunes per day: 29
    [OK] Sorts requiring temporary tables: 0% (0 temp sorts / 863K sorts)
    [!!] Joins performed without indexes: 114215
    [OK] Temporary tables created on disk: 4% (124K on disk / 2M total)
    [!!] Thread cache hit rate: 0% (2M created / 2M connections)
    [!!] Table cache hit rate: 0% (512 open / 54K opened)
    [!!] Open file limit used: 98% (1K/1K)
    [OK] Table locks acquired immediately: 99% (11M immediate / 11M locks)

    -------- Recommendations -----------------------------------------------------
    General recommendations:
    Add skip-innodb to MySQL configuration to disable InnoDB
    Add skip-bdb to MySQL configuration to disable BDB
    Reduce your overall MySQL memory footprint for system stability
    Enable the slow query log to troubleshoot bad queries
    Adjust your join queries to always utilize indexes
    Increase table_cache gradually to avoid file descriptor limits
    Variables to adjust:
    *** MySQL's maximum memory usage is dangerously high ***
    *** Add RAM before increasing MySQL buffer variables ***
    query_cache_limit (> 57M, or use smaller result sets)
    join_buffer_size (> 19.1M, or always use indexes with joins)
    thread_cache_size (> 25)
    table_cache (> 512)
    open_files_limit (> 1024)

    Sinon, quel est le meilleur confoguration dans ce cas ?


    Cdt
     
  16. Julia41
    Julia41 WRInaute passionné
    Inscrit:
    31 Août 2007
    Messages:
    1 779
    J'aime reçus:
    0
    Déjà fais le pas en SET GLOBAL, mais en dur dans la conf.

    Tu as des valeurs qui sont n'importes quoi sur certains trucs.
    Code:
    join_buffer_size (> 19.1M, or always use indexes with joins)
    Ca pas plus de 1Mo (et encore sur un kim ça fait beaucoup).

    Les recommandations mysqltuner sont faites sur des valeurs moyennes.
    Tes valeurs moyennes sont établies sur :
    Code:
    [--] Up for: 41d 7h 25m 40s (20M q [5.860 qps], 2M conn, TX: 8B, RX: 1B)
    Et donc quand tu fais tes modifications et ton mysqltuner 10s après, ton "10 secondes d'utilisateurs avec ces variables" représentent moins de 0.001% de la durée d'utilisation: donc fait des restart!
     
Chargement...
Similar Threads - Requête SQL lente Forum Date
Requetes SQL parfois lente : Selon show profile -> Pb opening table Développement d'un site Web ou d'une appli mobile 8 Juillet 2015
Requetes SQL un peu lente ... ~1 million d'enregistrements Développement d'un site Web ou d'une appli mobile 4 Mars 2013
Prestashop - Comportement bizarre d'une requête SQL e-commerce 1 Décembre 2018
Requête Mysql avec des string Développement d'un site Web ou d'une appli mobile 6 Février 2018
La syntaxe SQL permet-elle plusieurs mots-clefs dans une (sous-)requête identique ? Développement d'un site Web ou d'une appli mobile 17 Août 2017
Requete mysql Développement d'un site Web ou d'une appli mobile 30 Mai 2017
Problème requête mysql Développement d'un site Web ou d'une appli mobile 1 Mars 2017
Reduire et optimiser une requete sql Développement d'un site Web ou d'une appli mobile 8 Décembre 2016
Anomalie : beaucoup trop de requêtes SQL Administration d'un site Web 18 Novembre 2016
Besoin d'aide pour requête SQL PHP Développement d'un site Web ou d'une appli mobile 12 Novembre 2016