Temps d'éxécution des requetes

WRInaute discret
Bonjour,

j'ai des problemes de temps d 'éxécution sur les serveurs d'OVH. J'utilise le plan 720 en mutualisé donc.

Mes pages s'éxécutent parfois en 500 ms (ce qui est déjà assez important) et parfois en plusieurs secondes ?????

Est-ce du aux serveurs de BDD, à mes scripts ?

D'autre part, pourquoi la fonction mysql_db_query est elle obsolete ? Est ce un probleme de temps d'éxécution justement ?

Merci d'avance.
 
WRInaute impliqué
Salut,

720, ça fait un bon petit site déjà (j'ai un 60 hé hé).

Je remarque le même problème que toi, je pensais que c'était le serveur et j'allais m'en plaindre mais, maintenant que tu le dis, c'est peut-être mes requètes qui sont un peu mal optimisées.

Loïc.
 
WRInaute passionné
Salut TT,

La meilleure manière de tester les temps d'accès à une base est encore de la faire tourner seule sur un dédié. Ce dédié peut être ta machine perso (maison ou bureau), pas forcément chez un hébergeur. Sans ce type de test, tu auras toujours un doute et il est évident que si tu interroges l'hébergeur (quel qu'il soit) il te renverra "au bac à sable" et te suggérera de revoir ton code. :evil:

Les temps d'accès que tu obtiens me semblent énormes... mais tu m'as expliqué en MP que tu fais des jointures sur des tables de 15000 lignes :cry: Donc je pense que tu as plus vraisemblablement un problème au niveau conceptuel qui ne s'adaptera que très mal à un environnement mutualisé.

La fonction mysql_db_query() a été "deprecated" depuis php 4.0.6 , il faut donc la remplacer par mysql_select_db() et mysql_query()
C'est un choix fait par les développeurs PHP dont on ne connaît pas les raisons.

Cordialement,

Dan
 
WRInaute occasionnel
cleden a dit:
Salut,

720, ça fait un bon petit site déjà (j'ai un 60 hé hé).

Je remarque le même problème que toi, je pensais que c'était le serveur et j'allais m'en plaindre mais, maintenant que tu le dis, c'est peut-être mes requètes qui sont un peu mal optimisées.

Loïc.

pour mysql il faut au mieux tester les requetes sur un pc perso ...

pensez a creer des index de vos tables aussi ...

enfin il existe des commande utile sous mysql comme explain ... la syntax c explian LAREQUETE;

et ca te dira si ca fait des requete sur tes index, si ca fait du swap sur le dur avec des tables temporaire ou quoi ...

voila!
 
WRInaute discret
ok

ok, merci les gars, je vais testé en local.

Concernant mysql_db_query, je suis en train de tout remplacé mais ca n'arrange rien nivo temps mais bon faut qd meme le faire au cas ou.

Bonne journée.
 
WRInaute impliqué
Tchinkatchuk a dit:
D'autre part, pourquoi la fonction mysql_db_query est elle obsolete ? Est ce un probleme de temps d'éxécution justement ?

Non, le temps d'execution de mysql_db_query et mysql_query sont comparables.

En fait, les développeurs préfèrent le jeu mysql_query et mysql_select_db, parce qu'il permet d'écrire des scripts qui attaquent deux bases différentes en parallèle, alors que c'était lourd et non performant avec mysql_db_connect.

Par ailleurs, les dernières versions de mysql contiennent une possibilité interessante : l'instruction EXPLAIN suivie de la requête, qui donne des informations sur la manière dont mysql effectue la requête (utilisation de l'index ou pas, combien d'enregistrements sont lus etc...) ce qui permet d'optimiser de manière rigoureuse.
 
Discussions similaires
Haut