Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
831 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] mysql VS mysqli en terme de performance?

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

[PHP] mysql VS mysqli en terme de performance?

n°1210101
Yoyo@
Posté le 28-09-2005 à 17:38:27  profilanswer
 

Salut,
 
Je voudrais savoir si, pour un nouveau projet, se basant sur PHP/MySQL, il était préférable d'utiliser la librairie mysql ou la librairie mysqli?
 
Ici, je parle plus en terme de performances générales (vitesse, occupation mémoire, serveur, etc) que sur des concepts du type "mysqli, c'est mieux, car c'est orienté objet".
 
D'autre part, et dans l'hypothèse où je reste cantonné à la librairie mysql, vaut il mieux utiliser PHP v4 ou PHP v5?
 

mood
Publicité
Posté le 28-09-2005 à 17:38:27  profilanswer
 

n°1210127
betsamee
Asterisk Zeperyl
Posté le 28-09-2005 à 18:06:05  profilanswer
 

quelle est ta version de MySQL?

n°1210137
Yoyo@
Posté le 28-09-2005 à 18:18:09  profilanswer
 

Bah c'est pareil, c'est un peu à moi de choisir la version de MySQL que je veux (donc, je pense a priori que je vais prendre la dernière 4.1.x en date)

n°1210142
betsamee
Asterisk Zeperyl
Posté le 28-09-2005 à 18:21:57  profilanswer
 

je ne peux pas te donner de certitudes mais avec la 4.1.9 couplee a php 5.0.2 j'ai d'excellentes perfs

n°1210145
Yoyo@
Posté le 28-09-2005 à 18:25:14  profilanswer
 

D'accord!
 
Mais tu utilises mysql ou mysqli?
 
C'est ce que je compte utiliser: MySQL 4.1.x avec PHP 5.x (d'après tout ce que j'ai lu, PHP 5 règlke pas mal de problèmes). Par contre, je n'ose pas m'aventurer dans MySQL 5.x.

n°1210146
cesarr89
Posté le 28-09-2005 à 18:25:35  profilanswer
 

Mais ca dépends surtout de ton utilisation...

n°1210150
betsamee
Asterisk Zeperyl
Posté le 28-09-2005 à 18:28:46  profilanswer
 

j'utilise mysql

n°1210151
cesarr89
Posté le 28-09-2005 à 18:30:16  profilanswer
 

Yoyo c'est pour faire quoi?

n°1210152
Yoyo@
Posté le 28-09-2005 à 18:30:32  profilanswer
 

cesarr89 a écrit :

Mais ca dépends surtout de ton utilisation...


 
Cad?  
 
Je parle bien entendu ici d'un site web, type dynamique, permettant surtout de consulter des données, mais aussi de les mettre à jour, le tout utilisant un moteur de requêtes assez complexe...

n°1210153
cesarr89
Posté le 28-09-2005 à 18:32:56  profilanswer
 

C'est à dire assez complexe?

mood
Publicité
Posté le 28-09-2005 à 18:32:56  profilanswer
 

n°1210164
Yoyo@
Posté le 28-09-2005 à 18:38:25  profilanswer
 

Bah je ne sais pas comment décrire la chose, mais ce ne sont pas des requêtes de base du genre "SELECT name FROM people WHERE nationality = 'FR'"
 
Ce que je veux dire, c'est que l'extraction de mes données nécessite pas mal de traitement, à l'aide de plusieurs requêtes, etc. imagine, par exemple, pour simplifier la chose, que tu as plusieurs villes dans ta BD, et que chaque ville est reliée à quelques voisines seulement. Et que tu veuilles aller de Paris à Limoges en utilisant le plus court chemin. Il va donc y avoir ce qu'on appelle des parcours de graphe, etc... Ce ne seront pas des jointures simples. (ce n'est qu'un exemple)
 

n°1210168
betsamee
Asterisk Zeperyl
Posté le 28-09-2005 à 18:40:46  profilanswer
 

je fais tout ca sur de tres gros volumes sans aucun pb avec la config  decrite ci dessus

n°1210171
cesarr89
Posté le 28-09-2005 à 18:42:19  profilanswer
 

Oué je comprends.
Bah tante avec Mysql 4.1.9 et PHP 5....mais je sais pas si c'est le mieux pour ce que tu veux faire.

n°1210173
Yoyo@
Posté le 28-09-2005 à 18:43:27  profilanswer
 

D'accord, je pense bien quela config dont tu me parles est appropriée, mais je me demandais, vu ce que j'ai lu dans un livre O'Reilly, quel choix effectuer entre mysql et mysqli (c'estle sujet principal du topic finalement). J'ai vu que mysqli permettait d'utiliser ds requêtes paramétrées, et dans ce que j'ai lu, il apparaît que c'est plus rapide (mais bon, je prends celà avec des pincettes, et c'est pour ça que je suis venu demander sur ce forum ce que vous en pensiez)

n°1210176
Yoyo@
Posté le 28-09-2005 à 18:50:46  profilanswer
 

cesarr89 a écrit :

Oué je comprends.
Bah tante avec Mysql 4.1.9 et PHP 5....mais je sais pas si c'est le mieux pour ce que tu veux faire.


 
Oui, oui, mais comme dit juste plus haut, ce que je cherche, c'est savoir s'il vaut mieux pour moi utiliser mysql ou mysqli... (mysqli était une librairie d'accès MySQL plus récente et orientée objet)
 
Sinon, oncernant plus globalement les technos à utiliser, j'ai choisi MySQL car c'est rapide et Open. Et PHP, bah...j'ai lu à plusieurs reprises que c'était sans doute plus rapide que Perl et plus étendu. (mais bon, je ne cherche pas à lancer de polémique ici, je em suis lancé dans PHP un peu au hasard au début)
 

n°1210181
betsamee
Asterisk Zeperyl
Posté le 28-09-2005 à 18:55:00  profilanswer
 

php et MySQL cherches pas y a pas de meilleure alternative l'un pour l'autre
sinon apparement mysqli (que je ne connaissait pas quand j'ai installe mon serveur il y a 6 mois :D) apparait clairement etre la meilleure alternative pour une version de MySQL superieure ou egale a 4.1.3

n°1210184
Yoyo@
Posté le 28-09-2005 à 18:58:01  profilanswer
 

betsamee a écrit :

php et MySQL cherches pas y a pas de meilleure alternative l'un pour l'autre
sinon apparement mysqli (que je ne connaissait pas quand j'ai installe mon serveur il y a 6 mois :D) apparait clairement etre la meilleure alternative pour une version de MySQL superieure ou egale a 4.1.3


 
C'est bien ce que j'ai lu, mais j'aurais quand même voulu qu'on me le confirme de manière ferme... et non pas parce qu'il est dit que mysqli est meilleur. Ce qui est bizarre, c'est que la plupart des livres récents traitant de PHP/MySQL ne parlent que de mysql, pas de mysqli.

n°1210188
betsamee
Asterisk Zeperyl
Posté le 28-09-2005 à 18:59:34  profilanswer
 

je n'ai pas l'experience pour t'affirmer fermement que mysqli est meilleur que mysql

n°1210192
Yoyo@
Posté le 28-09-2005 à 19:07:17  profilanswer
 

D'accord!
 
Merci pour ta contribution. Je reste donc poour le moment sur PHP 5.0.x et MySQL 4.1.x.
 
D'autres avis? (concernant mysql VS mysqli bien sûr)

n°1210196
FlorentG
Unité de Masse
Posté le 28-09-2005 à 19:17:29  profilanswer
 

betsamee a écrit :

php et MySQL cherches pas y a pas de meilleure alternative l'un pour l'autre
sinon apparement mysqli (que je ne connaissait pas quand j'ai installe mon serveur il y a 6 mois :D) apparait clairement etre la meilleure alternative pour une version de MySQL superieure ou egale a 4.1.3


Je crois même que mysqli est obligatoire pour > 4.1, non ? La 4.1 n'étant pas supportée par mysql ? (à vérifier)

n°1210198
Yoyo@
Posté le 28-09-2005 à 19:19:42  profilanswer
 

Bah non, puisque plus haut, ils font du PHP 5.0.x avec du MySQL 4.1.x en utilisant mysql.
 
Pour ma part, je n'ai fait que du PHP 4.x avec du MySQL 4.1.x, en utilsant mysql.

n°1210219
Je@nb
Kindly give dime
Posté le 28-09-2005 à 20:16:13  profilanswer
 

Perso je fais maintenant du mysqli pour plus de simplicité après j'ai lu que mysql était plus rapide mais bon c pas flagrant par rapport à la simplicité :)

n°1210233
shakpana
des fois, j'me demande ...
Posté le 28-09-2005 à 20:57:14  profilanswer
 

FlorentG a écrit :

Je crois même que mysqli est obligatoire pour > 4.1, non ? La 4.1 n'étant pas supportée par mysql ? (à vérifier)


obligatoire non, mais conseillée par php.net et par mysql.com pour un serv. MySQL v4.1.3+
de toute façon tu ne bénéficis pas de toutes les possibilités de MySQL v4.1.3+ avec le client mysql_pas_i
alors bon ...
--
edit : suis encore à mysql_pas_i, qlq'un aurait un peu de temps à m'envoyer par mail  :pt1cable:
--
re-edit : z'ai retrouvé chez php.net :
This MySQL extension doesn't support full functionality of MySQL versions greater than 4.1.0. For that, use MySQLi.


Message édité par shakpana le 28-09-2005 à 21:06:34
n°1210349
Yoyo@
Posté le 28-09-2005 à 23:13:51  profilanswer
 

Tiens, intéressant... Le mysqli serait donc plus lent que le mysql?
 
Conclusion: si toutes les fonctionnalités dont j'ai besoin sont présentes dans mysql, autant utiliser mysql??


Message édité par Yoyo@ le 28-09-2005 à 23:14:23
n°1210353
Je@nb
Kindly give dime
Posté le 28-09-2005 à 23:19:16  profilanswer
 

Perso j'utiliserai qd même mysqli c'est ce qui sera le mieux à terme. Maintenant c peut être un chouilla moins performant mais à terme ça le sera plus je pense :)

n°1210357
Je@nb
Kindly give dime
Posté le 28-09-2005 à 23:21:34  profilanswer
 

http://www.johnjawed.com/benchmarks/
 
Dont voilà les résultat :  
mysqli_stmt > mysql_query > mysqli_query > mysqli_multi_query

n°1210358
shakpana
des fois, j'me demande ...
Posté le 28-09-2005 à 23:22:36  profilanswer
 

> Perso j'utiliserai qd même mysqli  
c'est que je me dis aussi ... malheureusement
--
nan ? personne n'a de temps à envoyer, aller par PM au moins ...  :sweat:


Message édité par shakpana le 28-09-2005 à 23:22:59
n°1210364
Yoyo@
Posté le 28-09-2005 à 23:30:28  profilanswer
 

Bah j'ai lu rapidement le benchmar.
 
Déja, le gars fait 1000000 fois la même requête (un INSERT de base) mais il ne lance qu'une fois le mysqli_prepare dans le cadre du mysqli_stmt, donc, c'est sûr qu'il a plus vite avec ce dernier.
 
Mais dans le cas où je dois exécuter des requêtes différentes, alors je me demande s'il resterait le plus rapide.
 
D'autre part, j'aurais aimé qu'il fasse un SELECT alambiqué pour comparer, etc...
 
Bref, je suis encore dans l'expectative finalement...

n°1210368
shakpana
des fois, j'me demande ...
Posté le 28-09-2005 à 23:42:03  profilanswer
 

tu nous tiens au courant de tes conclusions ?
:)
 
et concernant le bench, le point non négligeable est dans les conclusions : mysql_real_escape_string
ça mérite reflexion, enfin pour les utilisateurs de mysql_real_escape_string ... comme ouam  
:jap: marchi Je@nb pour le lien


Message édité par shakpana le 28-09-2005 à 23:42:26
n°1210371
Yoyo@
Posté le 28-09-2005 à 23:56:18  profilanswer
 

Oui, mais pour ma part, les requêtes mySQL seront internes entre PHP et MySQL, et les paramètres seront "parsés" en amont...
 
Ca aurait vraiment été bien de faitre un comparatif sur une grosse requête. Histoire de voir si le mysqli peut rivaliser dans des conditions normales avec le mysql...

n°1210379
shakpana
des fois, j'me demande ...
Posté le 29-09-2005 à 01:11:56  profilanswer
 

bon, prends le comme ça vient, je viens de patcher ma classe sql pour connecter "vite fait" via mysqli, et apparement je gagne en moyenne 0.004 s (sur mon vieux coucou de 700MHz) test sur 20aine de hits sur une page à 6 requêtes dont 1 insert et 1 replace le reste étant du select - truc de base quoi ...
bon ça te fait une belle jambe et je pourrais t'en raconter d'autres comme ça tu pourrais marcher  :D  
et rien n'est optimisé pour l'utilisation de mysqli, donc bon ... c'est une maigre participation à la cause ...
dès que j'ai un peu de temps, il faut que je m'y mette sérieusement ...
a+

n°1210404
Yoyo@
Posté le 29-09-2005 à 07:33:57  profilanswer
 

D'accord, merci pour le test rapide :) Quelque part, ça met en confiance.
(au fait, 0.004s par rapport à combien à la base?)
 
 

n°1210415
shakpana
des fois, j'me demande ...
Posté le 29-09-2005 à 08:30:56  profilanswer
 

considères une augmentation de perf de +-8% sur MySQL v4.1.14
mais encore une fois, c'est quasi juste un mysql_* -> mysqli_*
donc sans aucun profit de fonctionnalités ...


Message édité par shakpana le 29-09-2005 à 08:38:11
n°1210420
betsamee
Asterisk Zeperyl
Posté le 29-09-2005 à 08:40:33  profilanswer
 

il me semble que mysqli est optimise pour MySQL >= 4.1.3 non?
 
EDIT : +- 8% cela me parait enorme !!!
je ne vois pas de justification a cette difference ,le moteur du SGBD restant tous comptes faits le meme


Message édité par betsamee le 29-09-2005 à 08:42:15
n°1210426
shakpana
des fois, j'me demande ...
Posté le 29-09-2005 à 08:45:14  profilanswer
 

je m'en rend compte, mais c'est ma constatation ...
ok c'est pas un bench super poussé, une 20aine de données seulement, mais c'est ce qu'il en sort ...

n°1210429
Yoyo@
Posté le 29-09-2005 à 08:51:22  profilanswer
 

Bah surtout, ce que je me dis, c'est que 0.004s, c'est 8%, alors, ça correspond à des temps très très courts au global, dionc, c'e n'est pas assez fiable comme test. (mais bon, ça donne une idée :D)
 
Sinon, il me semble que 4.1.3 > 4.1.14, nan? (ça dépend si c'est classé ar ordre alphanum ou juste num)

n°1210432
omega2
Posté le 29-09-2005 à 08:53:35  profilanswer
 

Au boulot, on utilise mysql5 depuis quelques semaines, et si on a eu un blocage de mysql cette semaine, c'était par ce qu'on avait 5 ou 6 versions de retard.
J'utilises également mysql5 chez moi et pour des requettes classiques (select, insert, update même multi table avec des requettes imbriqués) je n'ai eu aucun plantage.
D'ailleur, la dernéire version de mysql5 n'est plus une beta mais une release candidate. D'aprés eux, les seuls bugs qui pouraient encore rester sont des bugs ne survenant que dans des situations complexes.
 
Normalement, tu ne devrais avoir aucun probléme même en utilisant mysql5, mais si tu n'utilises pas les nouveautés de mysql5, alors reste avec la version4. Nous au boulot, on est passé trés vite à la version5 pour éviter que la transition V4 vers V5 ne soit trop compliqué vu la masse de données qu'on aurait à faire transiter de l'un à l'autre : on obtient déjà un fichier de plus de 10 Go quand on exporte la base sous forme de requettes SQL et ca augmente tout le temps.

n°1210434
Yoyo@
Posté le 29-09-2005 à 08:55:36  profilanswer
 

Bah j'avais regardé, mais quelles sont les nouveautés intéressantes?
 
Il me semble qu'il y a les procédures stockées, et si ça marche aussi bien que sur SQLServer, alors c'est un réel plus, car ça permet de faire beaucoup de traitement en interne (sous réserve  que le langage utilisé soit aussi évolué et rapide que Transact SQL par exemple). Mais je nme demande si tout celà est bien optimal ...

n°1210437
omega2
Posté le 29-09-2005 à 09:04:05  profilanswer
 

Moi, je suis passé directement de mysql4 à mysql5, donc je sais pas qu'elles sont les nouveautés par rapport à mysql4.
Mais il y a les procédure stokés qui ont l'air de bien marché même si j'ai rien fait de complexe avec.
Il y a aussi la possibilité de créer à l'intérieur d'une requette des tables temporaires à l'aide d'une requette de type "select" mis dans la partie from de la requette. (super rapide comme truc, tu gagnes beaucoup par rapport à de simples requettes imbriqués :) )
 
Grace aux procédures stockés, on peut limiter de maniére trés précise les droits d'accés aux données : il y a un niveau d'autorisation ou on autorise l'accés à une procédure stockés sans donner directement l'accés aux tables utilisé par la requette, la procédure stocké utilise alors les droits d'accés de son propriétaire.
 
Et il y a surement pleins d'autres trucs que j'ai pas encore découvert ou que je pense être déjà présent dans mysql 4.1 sans que ca soit le cas.

n°1210449
betsamee
Asterisk Zeperyl
Posté le 29-09-2005 à 09:16:49  profilanswer
 

Yoyo@ a écrit :

Bah surtout, ce que je me dis, c'est que 0.004s, c'est 8%, alors, ça correspond à des temps très très courts au global, dionc, c'e n'est pas assez fiable comme test. (mais bon, ça donne une idée :D)
 
Sinon, il me semble que 4.1.3 > 4.1.14, nan? (ça dépend si c'est classé ar ordre alphanum ou juste num)


 
ben oui 4.1.3 > 4.1.14 [:pingouino]
 

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] mysql VS mysqli en terme de performance?

 

Sujets relatifs
[Php][Classe][Debutant] hum, où est l'erreur dans ma classe?[MYSQL] Incrémentation comme avec le PHP ou le C
ouvrir un fichier protégé via Http avec une fonction PHPMySQL jointure directement dans MySQLAdmin
PHP/MySQL : Performances[PHP Compilé pr ligne de commande] Comment demander une entrée de l'..
[MYSQL] Demande d'aide sur un SELECT[Resolu] Plusieurs requetes MySQL > Syntaxe PHP ?
Plus de sujets relatifs à : [PHP] mysql VS mysqli en terme de performance?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR