IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
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

PHP & Base de donn�es Discussion :

Optimisation de scripts PHP/MySQL [D�bat]


Sujet :

PHP & Base de donn�es

  1. #301
    Membre �m�rite
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    842
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 842
    Par d�faut
    Il est �tonnant que cette optimisation ne soit pas effectu�e par le SGBD. Peut on avoir une liste fiable des SGBD pour lesquels il faut effectivement faire le travail � leur place ?

  2. #302
    Membre �prouv�
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    F�vrier 2005
    Messages
    3 509
    D�tails du profil
    Informations personnelles :
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : SQL
    Secteur : Finance

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 3 509
    Par d�faut
    Citation Envoy� par Blustuff
    Il est �tonnant que cette optimisation ne soit pas effectu�e par le SGBD. Peut on avoir une liste fiable des SGBD pour lesquels il faut effectivement faire le travail � leur place ?
    Je dirais toute celle qui utilise un �quivalent au LIMIT. Mais !...
    En fait, il est rare de faire une pagination sur des centaines de milliers d'enregistrements mais pour 10 000 enregistrements je ne pense pas qu'il y ait de probl�me.
    La structure d'une base de donn�es peut changer selon la quantit� d'information qu'il doit g�rer.

    Pour le LIMIT il est un peut normal que �a mette beaucoup de temps pour une telle quantit� donc il faut passer par une autre technique telle que je site mais il faut pas l'utiliser syst�matique pour un faible volume.

  3. #303
    Membre �m�rite
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    842
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 842
    Par d�faut
    Si l'optimisation peut �tre syst�matique, alors les SGBD la feraient syst�matiquement, vu qu'elle n'est pas excessivement compliqu�e. Quel est le d�tail qui fait qu'ils ne font pas ce travail ?

  4. #304
    Membre �prouv�
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    F�vrier 2005
    Messages
    3 509
    D�tails du profil
    Informations personnelles :
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : SQL
    Secteur : Finance

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 3 509
    Par d�faut
    Citation Envoy� par Blustuff
    Si l'optimisation peut �tre syst�matique, alors les SGBD la feraient syst�matiquement, vu qu'elle n'est pas excessivement compliqu�e. Quel est le d�tail qui fait qu'ils ne font pas ce travail ?
    Test de performance entre les deux methodes avec de fort volume.

  5. #305
    Membre �m�rite
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    842
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 842
    Par d�faut
    Vous ne donnez pas de raison pour laquelle votre m�thode serait moins performante.

  6. #306
    Membre �prouv�
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    F�vrier 2005
    Messages
    3 509
    D�tails du profil
    Informations personnelles :
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : SQL
    Secteur : Finance

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 3 509
    Par d�faut
    Citation Envoy� par Blustuff
    Vous ne donnez pas de raison pour laquelle votre m�thode serait moins performante.
    Laquelle qui serait moin importante ? Utiliser un LIMIT ou le BETWEEN.

    Si c'est le LIMIT. Les performances tombent lorsqu'il y a �normement d'enregistrement sur la les tables joints. Par exemple, sur un forum ou le nombre de page d'un topic est compl�tement al�atoire. Sur le site hardware.fr il y a des topic ou il y a un topic sur Sarkozy qui lui poss�de 2993 pages � l'heure ou j'�cris. en sachant qu'il y a 30 interventions par page donc 2993x30 = 89790 enregistrements. La consultation des donn�es vers la page 1,2,3,4,... vont �tre rapide mais vers la fin �a va �tre plus long. Le moteur doit parcourir toute la ou les tables join quasiment enregistrement par enregistrement. Ceci jusqu'a qu'il arrive au bon curseur (num�ro de page) et de la il retourne les x �l�ment par la suite. Dans l'exemple c'est 30. Ce qu'il bouffe aussi c'est qu'il est oblig� de ranger les donn�es par date. Le ORDER BY + LIMIT en m�me temps greffe les perfs.

  7. #307
    Membre �m�rite
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    842
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 842
    Par d�faut
    Non, l'autre m�thode.

  8. #308
    Membre �prouv�
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    F�vrier 2005
    Messages
    3 509
    D�tails du profil
    Informations personnelles :
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : SQL
    Secteur : Finance

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 3 509
    Par d�faut
    Citation Envoy� par Blustuff
    Non, l'autre m�thode.
    Si c'est le BETWEEN, non je concid�re pas que c'est une m�thode moin performant, bien au contraire.
    Peut �tre que c'est moi qui m'y suis mal expliqu� ou une coquille.

  9. #309
    Membre �m�rite
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    842
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 842
    Par d�faut
    Mais alors pourquoi cette optimisation n'est pas faite syst�matiquement par les SGBD ?

    Dans un SGBD qui autorise les requ�tes imbriqu�es, on pourra �crire �a encore plus concis�ment. Une r�gle qui est assez souvent appliqu�e est de laisser le SGBD optimiser la requ�te et de ne pas faire ce genre de choses. Bien s�r, il peut y avoir des exceptions, mais il faut �tre bien certain de ce que l'on fait, d'o� ma question.

  10. #310
    Membre �prouv�
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    F�vrier 2005
    Messages
    3 509
    D�tails du profil
    Informations personnelles :
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : SQL
    Secteur : Finance

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 3 509
    Par d�faut
    Citation Envoy� par Blustuff
    Mais alors pourquoi cette optimisation n'est pas faite syst�matiquement par les SGBD ?

    Dans un SGBD qui autorise les requ�tes imbriqu�es, on pourra �crire �a encore plus concis�ment. Une r�gle qui est assez souvent appliqu�e est de laisser le SGBD optimiser la requ�te et de ne pas faire ce genre de choses. Bien s�r, il peut y avoir des exceptions, mais il faut �tre bien certain de ce que l'on fait, d'o� ma question.
    Oui biensure, ce que je donne peut se faire naturellement dans une requ�te imbriqu� c'est m�me mieux.
    Pourquoi ce n'est pas optimis� ? Personnellement, je ne lui reproche pas que �a soit pas optimis� parce que cela n�cessite de prendre beaucoup de param�tre en compte. La taille �ventuelle qui sera retourn�, le nombre de table impliqu� dans la requ�te. De plus, pour en arriver � avoir plus de 2000 pages ... Cela en vaut-il la peine de faire une exception. Par rapport au bench et au developpeur traitant de ce probl�me c'�tait la meilleur solution. Le forum Hardware.fr malgr� qu'il soit sur SQL Server utilise la m�me technique pour les m�mes raisons.

  11. #311
    Membre chevronn�
    Avatar de genova
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    487
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 487
    Par d�faut
    Citation Envoy� par berceker united
    Si c'est le LIMIT. Les performances tombent lorsqu'il y a �normement d'enregistrement sur la les tables joints. Par exemple, sur un forum ou le nombre de page d'un topic est compl�tement al�atoire. Sur le site hardware.fr il y a des topic ou il y a un topic sur Sarkozy qui lui poss�de 2993 pages � l'heure ou j'�cris. en sachant qu'il y a 30 interventions par page donc 2993x30 = 89790 enregistrements. La consultation des donn�es vers la page 1,2,3,4,... vont �tre rapide mais vers la fin �a va �tre plus long. Le moteur doit parcourir toute la ou les tables join quasiment enregistrement par enregistrement. Ceci jusqu'a qu'il arrive au bon curseur (num�ro de page) et de la il retourne les x �l�ment par la suite. Dans l'exemple c'est 30..
    Tu es s�r ? Moi si j'�tais un SGBD et que je devais retourner les 30 r�sultats � partir de la page 1985, ben je me contenterai de d�placer un pointeur jusque cette zone m�moire et de retourner ce qu'il faut. Apr�s reste � voir le fonctionnement interne de la SGBD, je suis sur que ce sont des programmes bienb bourrins ^^
    Testez le forum Fire Soft Board, un forum libre, gratuit et fran�ais.

    Syst�me de template de phpBB - Lisez la FAQ PHP avant toute question si vous d�buttez en PHP.

  12. #312
    Membre �prouv�
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    F�vrier 2005
    Messages
    3 509
    D�tails du profil
    Informations personnelles :
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : SQL
    Secteur : Finance

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 3 509
    Par d�faut
    Citation Envoy� par genova
    Tu es s�r ? Moi si j'�tais un SGBD et que je devais retourner les 30 r�sultats � partir de la page 1985, ben je me contenterai de d�placer un pointeur jusque cette zone m�moire et de retourner ce qu'il faut. Apr�s reste � voir le fonctionnement interne de la SGBD, je suis sur que ce sont des programmes bienb bourrins ^^
    C'est simple PhpBb utilise le LIMIT c'est pour cela qu'arriver � un certain nombre de page ce forum devient un veau et que beaucoup d'hebergeur ne veulent � avoir ce forum chez eux .

  13. #313
    Membre chevronn�
    Avatar de genova
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    487
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 487
    Par d�faut
    Merci pour les infos,
    je viens de regarder le code source de vbulletin et effectivement ils chargent les messages via un IN () en prenant leurs ID.
    J'ai regard� le code source de phpBB3 et ils ont corrig�s ce probl�me aussi, donc phpBB3 ne souffrira pas de ce d�faut.

    Me reste plus qu'� modifier la source de mon forum
    Testez le forum Fire Soft Board, un forum libre, gratuit et fran�ais.

    Syst�me de template de phpBB - Lisez la FAQ PHP avant toute question si vous d�buttez en PHP.

  14. #314
    Membre �prouv�
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    F�vrier 2005
    Messages
    3 509
    D�tails du profil
    Informations personnelles :
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : SQL
    Secteur : Finance

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 3 509
    Par d�faut
    Citation Envoy� par genova
    Merci pour les infos,
    je viens de regarder le code source de vbulletin et effectivement ils chargent les messages via un IN () en prenant leurs ID.
    J'ai regard� le code source de phpBB3 et ils ont corrig�s ce probl�me aussi, donc phpBB3 ne souffrira pas de ce d�faut.

    Me reste plus qu'� modifier la source de mon forum
    PhpBb3 est apparement un tr�s gros nettoyage millenaire de phpBb. Mais au moment du topic il n'�tait pas encore sortie.

  15. #315
    Membre �prouv�
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Octobre 2006
    Messages
    1 125
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 125
    Par d�faut
    Citation Envoy� par Metallic-84s Voir le message
    ob_start();
    ob_end_flush();
    Je n'ai pas compris � quoi �a servait ?

  16. #316
    Membre �prouv�
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    F�vrier 2005
    Messages
    3 509
    D�tails du profil
    Informations personnelles :
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : SQL
    Secteur : Finance

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 3 509
    Par d�faut
    Citation Envoy� par afrodje Voir le message
    Je n'ai pas compris � quoi �a servait ?
    En faite, tu g�res la sortie �cran. En faite quand tu fais un echo tu peux retarder l'affichage �cran par exemple ou orienter l'information destin� � l'�cran pour l'envoyer dans une fichier.
    C'est utilis� pour la gestion du cache.

  17. #317
    Membre �m�rite

    Profil pro
    H4X0|2 @ YourLabs Business Service
    Inscrit en
    Octobre 2006
    Messages
    657
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activit� : H4X0|2 @ YourLabs Business Service
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 657
    Par d�faut
    Au sujet de la mise en tampon the sortie (output buffering).
    Le principe est simplement que lorsqu'il est d�marr� : le parser garde la main � chaque ?>, ce qui optimise largement la vitesse d'execution proportionnelement au nombre de <?php ?> (notamment pour ceux qui utilisent des templates en PHP).
    Si la mise en tampon de sortie n'est pas activ�e, il est logique que PHP rende la main � son module d'execution lorsqu'il parse un ?> (module d'execution comme apache-php, cli ou cgi, ou autre). Lequel lui rend la main si il rencontre une balise d'ouverture <?php ou <? si il en rencontre une ...
    En r�gle g�n�rale, la bufferisation de sortie optimise largement le code.

    example : http://www.developpez.net/forums/sho...&postcount=287
    doc : http://php.net/outcontrol

  18. #318
    Membre �clair� Avatar de Sayrus
    Profil pro
    Inscrit en
    D�cembre 2005
    Messages
    899
    D�tails du profil
    Informations personnelles :
    �ge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : D�cembre 2005
    Messages : 899
    Par d�faut Combien de requ�te par page?
    Bonjour � tous!

    J'ai une question pour laquelle vous pourriez peut �tre me r�pondre:

    Selon vous, combien de requ�te SQL peut on faire au maximum par page (pour un CMS complet) ?

    Comme vous devez le savoir, une seule requ�te pour g�rer un CMS c'est un peu...

    Alors pour savoir si je suis dans le bon, dites moi combien de requ�te est il id�al de faire AU MAXIMUM pour un site accueil des centaines de personnes simultan�ment.

    Une id�e?

    Merci.

  19. #319
    Membre �prouv�
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    F�vrier 2005
    Messages
    3 509
    D�tails du profil
    Informations personnelles :
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : SQL
    Secteur : Finance

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 3 509
    Par d�faut
    Citation Envoy� par Sayrus Voir le message
    Bonjour � tous!

    J'ai une question pour laquelle vous pourriez peut �tre me r�pondre:

    Selon vous, combien de requ�te SQL peut on faire au maximum par page (pour un CMS complet) ?

    Comme vous devez le savoir, une seule requ�te pour g�rer un CMS c'est un peu...

    Alors pour savoir si je suis dans le bon, dites moi combien de requ�te est il id�al de faire AU MAXIMUM pour un site accueil des centaines de personnes simultan�ment.

    Une id�e?

    Merci.
    Au mieux je dirais 0 !
    C'est pas facile � r�pondre � cette question tous d�pend de la logique de la structure de la base de donn�es. Maintenant, il faut pas arriver � 50. Tu devrais pas poser la question dans ce sens l�. Il pr�f�rable de se poser la question sur la logique de metier de ton application que chercher � faire des �conomie de requ�te. Il est pr�f�rable de faire 10 requ�tes optimis� qu'une requ�te de bourrin.

  20. #320
    Membre �clair� Avatar de Sayrus
    Profil pro
    Inscrit en
    D�cembre 2005
    Messages
    899
    D�tails du profil
    Informations personnelles :
    �ge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : D�cembre 2005
    Messages : 899
    Par d�faut
    Ok merci

    Je vais faire les meilleures requ�tes possibles ou utiliser des caches.

Discussions similaires

  1. [D�butant] Acc�l�rer et optimiser ses scripts PHP
    Par Metallic-84s dans le forum Langage
    R�ponses: 6
    Dernier message: 24/03/2006, 12h37
  2. [MySQL] [SGBD] Script PHP/MYSQL d'access FTP
    Par ChRom dans le forum PHP & Base de donn�es
    R�ponses: 1
    Dernier message: 09/01/2006, 01h52
  3. R�ponses: 9
    Dernier message: 05/01/2006, 12h24
  4. Recherche Login Script PHP & MySQL
    Par whbh dans le forum SQL Proc�dural
    R�ponses: 9
    Dernier message: 01/12/2005, 16h45
  5. [MySQL] [Script]Optimisation de scripts Php/MySQL (2)
    Par copy dans le forum PHP & Base de donn�es
    R�ponses: 8
    Dernier message: 27/08/2004, 08h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo