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. #341
    R�dacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    F�vrier 2004
    Messages
    13 721
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activit� : Directeur technique

    Informations forums :
    Inscription : F�vrier 2004
    Messages : 13 721
    Par d�faut
    Eh bien si, justement, si tu n'utilises pas pconnect, les connexions se ferment automatiquement � la fin du script

  2. #342
    Membre �clair�
    Inscrit en
    F�vrier 2008
    Messages
    457
    D�tails du profil
    Informations forums :
    Inscription : F�vrier 2008
    Messages : 457
    Par d�faut
    Vous me rendez fous !! lol

    okok merci beaucoup

  3. #343
    Invit� de passage
    Profil pro
    Inscrit en
    F�vrier 2007
    Messages
    1
    D�tails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : F�vrier 2007
    Messages : 1
    Par d�faut
    Je suis plut�t de l'avis de fermer la connexion � la base de donn�es d�s la derni�re requ�te effectu�e, autrement dit d�s qu'on en a termin� avec la couche Models de l'application.

    Ca ne sert � rien, et peut m�me devenir nuisible de la laisser ouverte pendant le traitement des donn�es puis la g�n�ration de la vue, qui si elle est cons�quente, peut durer de 1 � plusieurs secondes.

  4. #344
    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 gseverin Voir le message
    C'est sur si tu as un site qui accueillle 1 personne par jour la inutile de dimensionner .

    Au contraire si ton site a un certain succ�s , il est pr�f�rable de fermer les connexions.

    Une personne qui consulte ton site et qui ne referme pas son navigateur maintien la connexion.

    sans compter celles qui surfent , on peut arriver vite au nombre de connexions autoris�es PAR UTILISATEUR ; 48 pour infomaniak Une vingtaine POUR OVH , il ne faut pas �tre tr�s fute fute pour le comprendre , tout �a bien sur si le site a pas mal de visites.

    D'ailleurs OVH propose de redimensionner ce nombre � la hausse moyennant finance , tiens curieux !! n'est-ce pas !!!!

    De toutes les fa�ons , dans les FAQ il est conseill� cette fa�on de faire.

    Pour info , pour ne pas te prendre la t�te , tu fais un include d'une page en entete de ton script ou la tu as ton connect de ta base.

    et en bas de ta pas tu fais un close de ta connexion avec un include .

    tu inclus ces scripts a chaque fois que tu commences un script et la en effet tu te poses pas de question.....
    Faux. La connexion se ferme � la fin du parsage du script PHP. Il y a pas de liaison permanente entre le navigateur et le serveur. Ce dernier envois �a page au navigateur et il ne le connait plus du tout. Heureusement que c'est ainsi parce qu'il faudrait des bases de donn�es ayant la possibilit� d'ouvrir des milliers de connexion en m�me temps.

  5. #345
    R�dacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    F�vrier 2004
    Messages
    13 721
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activit� : Directeur technique

    Informations forums :
    Inscription : F�vrier 2004
    Messages : 13 721
    Par d�faut
    Citation Envoy� par Delapouite Voir le message
    Ca ne sert � rien, et peut m�me devenir nuisible de la laisser ouverte pendant le traitement des donn�es puis la g�n�ration de la vue, qui si elle est cons�quente, peut durer de 1 � plusieurs secondes.
    C'est bien ce que je disais plus haut : Si tu as de tels temps de r�ponse, alors l'optimisation du nombre de requ�tes ouvertes est bien le dernier de tes soucis... Si ta vue met effectivement plus d'une seconde � s'afficher, alors il faut que tu te renseignes de toute urgence sur les techniques de mise en cache, mais tu peux tout de suite laisser tomber les sujets aussi triviaux que ce dont il est question ici

  6. #346
    Membre �clair�
    Inscrit en
    F�vrier 2008
    Messages
    457
    D�tails du profil
    Informations forums :
    Inscription : F�vrier 2008
    Messages : 457
    Par d�faut
    Et bien tant que j'y suis , je vais vous introduire une nouvelle question qui me trotte si vous voulez bien..
    J'en profite vu qu'en m�me temps nous sommes dans un sujet qui traite l'optimisation ^^

    Alors voila , j'ai fais un site (de vente mais peu importe) o� en faite je n'ai qu'une page "officielle" , c'est l'index.php..
    j'utilise des modules donc , ce qui me donne quelque chose comme :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <head>
    ..
    </head>
    <body>
    header();
    if(isset($_GET['section']) && in_array($_GET['section'], $sections))
      include('mod/' . $_GET['section'] . '.inc.php');
    else
      code de la page d'accueil
    footer();
    </body>
    Et dans mes modules , j'ai parfois d'autres modules, des genres de sous modules en quelques sortes..

    Est-ce l� un bon proc�d�?

    J'ai not� pas mal d'avantages , notamment dans la lisibilit� et la structure, et par exemple un avantage : je ne dispose que d'une balise body , donc que d'une seul possibilit� de "onload" pour le JS.

    J'aimerais avoir votre avis.. merci !

  7. #347
    R�dacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    F�vrier 2004
    Messages
    13 721
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activit� : Directeur technique

    Informations forums :
    Inscription : F�vrier 2004
    Messages : 13 721
    Par d�faut
    @libuma : Oui, c'est ce que l'on appelle un script de bootstrap, c'est une technique utilis�e par tous les frameworks modernes.

    Les noms de fichiers viennent en effet d'une variable client $_GET['section'], mais tu supprimes le risque en utilisant une "liste blanche" avec un tableau local $sections. Ta m�thode est donc correcte et s�curis�e

  8. #348
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    2
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 2
    Par d�faut
    Dans le cas d'un magazine en ligne, o� on aurait par exemple une quinzaine de requete SQL SELECT pour afficher diff�rents �l�ments sur la home, ne serait-ce pas plus malin de :

    1/ Cr�er une table pour la home, o� dynamiquement � chaque modification cot� back office, �a update cette table qui contient uniquement les �l�ments � afficher sur la home

    2/ Appeler avec une seule requete SQL SELECT tout le contenu de cette table et afficher son contenu au fur et � mesure de la page.


    J'ai jamais lu ce genre de proposition qui en plus de faire des tables par type de donn�es fait aussi des tables par page.

    Vous pensez que dans le cas de sql select c'est une solution pertinente ?

  9. #349
    Membre confirm�
    Avatar de savageman86
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    105
    D�tails du profil
    Informations personnelles :
    �ge : 39
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 105
    Par d�faut
    Bah si tu construits ta page avec 15 requ�tes SQL �a commence � faire. Plut�t que de cr�er un autre table sous pr�texte que c'est la page d'accueil et donc qu'elle est appel�e plus souvent, il faut plut�t la mettre en cache. Si ta page est affich�e 1 fois par seconde et que tu mets un cache d'une minute, les 15 requ�tes ne seront ex�cut�es que 1 fois sur 60, ce qui est largement acceptable.
    En plus c'est super facile � faire !

  10. #350
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    2
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 2
    Par d�faut
    Tout d�pend de quel type de mise en cache tu parles. Si c'est avec un syst�me de template, c'est lourd � mettre en place. Tu parles de quel type de mise en cache ?

  11. #351
    Membre exp�riment�
    Homme Profil pro
    Ing�nieur syst�mes et r�seaux
    Inscrit en
    D�cembre 2003
    Messages
    217
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 37
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activit� : Ing�nieur syst�mes et r�seaux
    Secteur : Enseignement

    Informations forums :
    Inscription : D�cembre 2003
    Messages : 217
    Par d�faut
    Quelqu'un aurait-il r�cemment fait un bench foreach() vs array_map() vs array_map+create_function() ?
    Il me semble que les lenteurs de array_map() ont �t� fix�es, non ?

  12. #352
    Membre confirm�
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    188
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 188
    Par d�faut
    j'ai aussi vus et entendu qu'il etait preferable d'utilis� directement les variable
    exemple :

    exemple:1
    mieu que :

    exemple2
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    $champ=$_POST['champ'];
    echo $cahmp;
    ;

    a confirm� car je ne sait pas dutout si il y a une grosse diference

  13. #353
    Expert confirm�

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par d�faut
    Citation Envoy� par keusty78 Voir le message
    j'ai aussi vus et entendu qu'il etait preferable d'utilis� directement les variable
    exemple :

    exemple:1
    mieu que :

    exemple2
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    $champ=$_POST['champ'];
    echo $cahmp;
    ;

    a confirm� car je ne sait pas dutout si il y a une grosse diference
    ca depend de ca que tu veux faire, en tout ins�r� une valeur brute de POST est une faille (plus ou moins grave suivant les requ�tes)

    et si tu veux afficher une valeur de POST dans le html il faut aussi faire un htmlspecialchars

  14. #354
    Membre confirm�
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    188
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 188
    Par d�faut
    oui c'est vrais stealth35 mai peut on pas proteger une variable directement meme si elle n'es pas defini? par exemple :

    mysql_real_escap_string($_POST['champ']);

    je dis sa comme sa mai en meme temp vous etes plus experimenter que moi dans le domaine

  15. #355
    Expert confirm�

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par d�faut
    Citation Envoy� par keusty78 Voir le message
    oui c'est vrais stealth35 mai peut on pas proteger une variable directement meme si elle n'es pas defini? par exemple :

    mysql_real_escap_string($_POST['champ']);

    je dis sa comme sa mai en meme temp vous etes plus experimenter que moi dans le domaine
    si $_POST['champ'] n'existe pas oui tu vas avoir une erreur,
    mais je te conseil d'oublier le mysql_real_escap_string, et de vite pass� sous mysqli ou PDO_MySQL

  16. #356
    Membre Expert
    Avatar de Seb33300
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 564
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 39
    Localisation : Tha�lande

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 564
    Par d�faut
    mysql_real_escape_string() c'est pour prot�ger une cha�ne de caract�re qui va �tre utilis�e dans une requ�te SQL via mysql_query() d'une injection SQL.

    Passer � mysqli ou � PDO ne r�soudra pas le probl�me. Il y a des fonctions �quivalentes � utiliser.
    Sinon il faut passer par des requ�tes pr�par�e, ce que les fonction mysql_ ne permettent pas.


    htmlentities() / htmlspecialchars() permettent de prot�ger le code HTML qui sera envoy� au navigateur. (failles XSS, etc..)


    Apres, le fait de passer par une variable interm�diaire plut�t que d'utiliser $_POST directement ne sert pas � grand chose � part consommer un peu plus de m�moire inutilement.

  17. #357
    Expert confirm�

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par d�faut
    Citation Envoy� par Seb33300 Voir le message
    Passer � mysqli ou � PDO ne r�soudra pas le probl�me. Il y a des fonctions �quivalentes � utiliser.
    Sinon il faut passer par des requ�tes pr�par�e, ce que les fonction mysql_ ne permettent pas.
    jamais dis l'inverse, regarde le lien (surtout le tableau du bas).

  18. #358
    Expert confirm�
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 61
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : Urbaniste
    Secteur : Sant�

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par d�faut
    Citation Envoy� par keusty78 Voir le message
    ...
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    $champ=$_POST['champ'];
    echo $cahmp;
    ;...
    ne faite JAMAIS �a
    Une des options de PHP pour faciliter la vie du d�veloppeur �tait de justement le faire de fa�on automatique.

    il existe donc des Hack pour tenter de corrompre les scripts.

    Donc si vous affectez un champs d'un POST � une variable
    �vitez que cette variable ait pour nom la clef du champ
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    $n_importe_quoi_d_autre_que_champ=$_POST['champ'];
    echo $n_importe_quoi_d_autre_que_champ;
    ;...[/QUOTE]
    A+JYT

  19. #359
    Invit� de passage
    Inscrit en
    Juin 2009
    Messages
    1
    D�tails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 1
    Par d�faut
    bonjour: svp mon fran�ais est trop faible mais j'essaye de m'exprimer pour mieux poser ma question .
    dans un forum ou chat on trouve g�n�ralement une zone de texte je veux copier coller
    dans cette zone une application visual basic et dans cette application un bouton si on clic sur ce bouton un texte apparait. b1 sur ce texte est pr�alablement programmer dans l'application par l'utilisateur de application et pas par l'utilisateur du chat ou du forum ,j'esp�re que c'est clair merci de votre compr�hension .

  20. #360
    Membre chevronn�
    Avatar de tse_jc
    Homme Profil pro
    Data Solutions
    Inscrit en
    Ao�t 2010
    Messages
    287
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activit� : Data Solutions
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : Ao�t 2010
    Messages : 287
    Billets dans le blog
    4
    Par d�faut
    Bonjour,

    Citation Envoy� par alekusu
    Dans le cas d'un magazine en ligne, o� on aurait par exemple une quinzaine de requete SQL SELECT pour afficher diff�rents �l�ments sur la home, ne serait-ce pas plus malin de :

    1/ Cr�er une table pour la home, o� dynamiquement � chaque modification cot� back office, �a update cette table qui contient uniquement les �l�ments � afficher sur la home

    2/ Appeler avec une seule requete SQL SELECT tout le contenu de cette table et afficher son contenu au fur et � mesure de la page.

    J'ai jamais lu ce genre de proposition qui en plus de faire des tables par type de donn�es fait aussi des tables par page.

    Vous pensez que dans le cas de sql select c'est une solution pertinente ?
    Cette approche bien qu'elle soit juste dans l'intention n'est pas bonne du tout dans la forme, car c'est ainsi que fonctionnent la plupart des CMS et qui dans le cas pr�sent constiste � utiliser la BD pour faire de la persistance de classe ce qui est � proscrire dans un contexte o� les performances et la disponibilit� en charge doivent �tre garantis.

    Dans le cas d'un site ecommerce il faut que la BD soit fortement normalis�e et par cons�quent qu'elle int�gre les sp�cificit�s m�tier et fonctionnelles de l'applicatif Web.

    Pour ce qui est de l'affichage, appliquer votre vision est la bonne m�thode � ceci pr�s qu'il faille le faire avec des vues, bien qu'avec MySQL des requ�tes d�di�es soient le plus souvent les plus appropri�es.

    ++

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