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

  1. #1
    Nouveau Candidat au Club
    MySQL necessite d'etre redemarré pour donner des résultats corrects
    Bonjour chers tous,
    J'ai un soucis avec mysql, j'ai une application que j'ai faites en PHP et quand je déploie, on se rend compte que après 2 ou 3 jours d'utilisation les données renvoyées par les requêtes ne sont pas conformes. J'avais pensé au cache alors j'ai mis SQL_NO_CACHE pour la plupart de mes requêtes mais sa continue. Les données renvoyées par les requêtes sont correctes juste après le redémarrage de mysql et ceci pour un court durée. J'utilise la classe ADODB pour communiquer avec la BD.
    SVP aidez moi, je ne sais plus quoi faire

  2. #2
    Membre expérimenté
    Étrange
    Je veux bien entendre que MySQL ait des défauts mais à ce niveau là... ce serait invivable pour bon nombres de projets.

    On a donc 3 choix :
    1- soit on tente de "réparer" ensemble
    2- soit vous installez un nouveau serveur tout neuf, restaurez les bases et faire pointer vos développements vers la nouvelle instance.
    3- soit vous avez perdu la confiance et faudra envisager de changer de SGBD

    Dites nous vers quoi vous voulez aller.
    Le savoir est une nourriture qui exige des efforts.

  3. #3
    Expert éminent sénior
    Salut bodry24.

    Êtes-vous sous Mysql ou sous MariaDB ? Et quelle version ?

    Faites un test depuis PhpMyAdmin et vérifiez que la même requête produit le même résultat.
    Sinon, Avez-vous identifié l'origine de votre problème ?
    A mon humble avis, le problème ne vient pas de MySql (cela ce saurait depuis longtemps) mais certainement de votre application.

    Il faudrait nous en dire plus sur la nature exacte de votre problème.

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

  4. #4
    Modérateur

    Bonjour,

    avoir un exemple (requete, resultat obtenus, résultat attendu,...) serait un bon point de départ.

  5. #5
    Expert confirmé
    Je pense que votre problème se trouve plutôt au niveau d'ADODB voir du pool de connexion si vous en utilisez un.
    Déjà d'après cette doc on voit que :
    https://adodb.org/dokuwiki/doku.php?...ransactionmode
    Supported values to pass in:

    READ UNCOMMITTED (allows dirty reads, but fastest)
    READ COMMITTED (default postgres, mssql and oci8)
    REPEATABLE READ (default mysql)
    SERIALIZABLE (slowest and most restrictive)
    REPEATABLE READ est bien trop restrictif et vous oblige à faire un COMMIT dans la session qui lit avant de pouvoir lire les données récemment commitées par les autres sessions.
    Donc changer le mode d'isolation en READ COMMITTED.

    Après, il y a peut être un cache autre que côté mysql :
    https://adodb.org/dokuwiki/doku.php?...eference_index
    Working With Cached Recordsets

    ADOdb supports the ability to work with cached query results, either through storing the results on local disks, or via the use of a Memcached Server. The functions below work the same as their non-caching equivalents, but also check for the availabiltiy of cached results first. This can help reduce database load.