Bonjour,
suite à l'obligation de passer les sql privé en mysql 8, j'ai donc refait mon site.
Je suis passé de php 5.4 à php 7.0
Je suis passé de mysql 5.7 à mysql 8
Et je suis passé de mysql à mysqli
Bon du coup, juste après avoir fait tout ça j'ai eut la mauvaise surprise de constaté que mes requetes de connexion sql semble un peu plus longue qu'avant…
Car j'ai un systeme de log qui se déclanche si le script de connexion dure plus de 0.09s
Et avant mes migrations, j'avais genre 10-15 dans mes logs en 2 jours, mais ça dépendant vraiment…
Et là ça fait à peine 30min que je l'ai fait et j'en ai déja 48 dans mes logs, les connexions mettent 0.12s a peu près..
Donc bon c'est quoi qui est devenu plus lent qu'avant ??? mysql 8 comparé au 5.7 ?? le php 7 par rapport au 5.4 ou bien la fonction mysqli par rapport à mysql ??
C'est pour l'instant pas génant en soit mais si j'ai un pic ça risque de plus vite saturé..
Moi qui pensé avoir un site plus rapide en upgradant mes trucs.. Bah au final, non je trouve ça abérant ?
ou alors j'ai merdé quelque part ??
Je viens de voir que dans les logs de mon sqlprivé j'ai plein plein de :
09/03/2024 15:25stdout2024-03-09 15:25:00,059 INFO reaped unknown pid 2342 (exit status 255)
avec des pid differents…
Avant le log de mon sql privé était vide…
kezako ?
Bonjour, de mon côté je viens de réaliser aujourd'hui la migration mysql 5.7 vers 8 de mon serveur privé et je constate exactement la même chose (temps SQL quasiment x2 et même message dans les logs).
Je précise que mon code était déjà en PHP 8.3 et mysqli bien-sûr depuis très longtemps.
donc c'est mysql 8 qui est merdique en faite…
Mysqli est-il bien adapté à SQL 8.
Avez vous essayé d'utiliser plutôt le langage PDO ?
le soucis c'est qu'on est obligé d'utiliser mysqli, mysql est supprimé à partir de php 7
J'ai pas tester encore PDO.
La je suis en train de me faire des script de test de connexion et d'insert avec différente base sql privé en 8 et je vais comparé au sql de base de l'hebergement en 5.7
Je ferais un test PDO comparatif aussi
Bon pour le debut de mes test
pour 1000 connexion je suis à 1.50-1.60s donc bon ça va ça fait très peu la connexion rien a voir avec les 0.12 que me ressortent les logs
sur un sql normal mais non actif en mysql 5.7 je suis a 1.25s pour 1000
et pour un autre sql privé non actif aussi en mysql 8 je suis à 1.25 aussi les 1000
donc bon du coup, c'est pas les connexions en elle même… C'est des blocages de temps en temps qui se font à la connexion…
Car mes logs me ressortent que les connexion trop longue, mais avant j'en avait toujours quelques une quand même mais moi depuis le passage à mysql 8
Il faut tester aussi avec des requêtes
oui mais non car dans mes logs justement qui test les script long ça test tout et la ya que les connexion qui ressortent longue à certain moment
sinon j'ai une autre question.
Du coup avant j'étais en ISO-8859-1 et du coup normalement je suis passé en UTF-8 car avec la base la connexion ça marché plus sur mysql8 car les valeurs de character_set sont maintenant toute de base en utf8mb4
par contre ma base et mes tables est vieille, du coup la base à un interclassement utf8mb4_0900_ai_ci
Mais les tables sont en latin1_swedish_ci
Pour le moment je ne semble pas avoir de soucis d'affichage, de requetes sql etc..
Mais je voulais savoir si je devais ou pas changé l'interclassement des tables en utf8mb4 ? j'ai peut que ça me fasse le bordel ou je sais pas que ça marche plus après lol. Est-ce que c'est risqué ? est-ce que l'interclassement en latin1 est très bien ? ou bien est-ce vraiment nécessaire que je change ?
Car j'ai un systeme de log qui se déclanche si le script de connexion dure plus de 0.09s
Et avant mes migrations, j'avais genre 10-15 dans mes logs en 2 jours, mais ça dépendant vraiment...
Et là ça fait à peine 30min que je l'ai fait et j'en ai déja 48 dans mes logs, les connexions mettent 0.12s a peu près..
au temps pour moi c'est pas la connexion qui est longue, en faite j'avais oublié j'avais regroupé la connexion avec d'autres requetes.
Et en faite 1 fois sur 100 je fais une requete DELETE qui supprime des ip selon le timestamp. Et en faite c'est cette requete qui semble plus longue en mysql 8 qu'en mysql 5.7
Je vais étudier ça de plus près trouver le pourquoi du comment. Si vous avez des pistes ?
Et en faite 1 fois sur 100 je fais une requete DELETE qui supprime des ip selon le timestamp. Et en faite c'est cette requete qui semble plus longue en mysql 8 qu'en mysql 5.7
Je vais étudier ça de plus près trouver le pourquoi du comment. Si vous avez des pistes ?
Avez-vous essayé en langage PDO ?
Bonjour,
Je rencontre le même souci.
Suite à la migration de la base de données vers mysql 8, mon site prestashop 1.7.8 est beaucoup plus lent (php 7.4).
Je m'attendais à l'inverse, qu'il soit plus rapide mais c'est l'inverse.
Est-ce que quelqu'un à une idée sur une opération à faire sur la base de données pour résoudre ce souci ?
Merci par avance
Est-ce que quelqu'un à une idée sur une opération à faire sur la base de données pour résoudre ce souci ?
Bonjour @AnthonyL47
Avez-vous lu tous les messages de ce sujet ?
Bonjour,
Oui prestashop utilise bien PDO.
De ce que j'ai lu, le système de cache a changé avec mysql 8 et cela peut cause un ralentissement.
Bonjour, c'est aussi ma conclusion et c'est effectivement documenté dans la V8. Merci @AnthonyL47