Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/02/2012, 09h40   #1
Invité de passage
 
Inscription : janvier 2012
Messages : 5
Détails du profil
Informations forums :
Inscription : janvier 2012
Messages : 5
Points : 0
Points : 0
Par défaut Question vitesse, MySQL vs Switch

Bonjour

Dans l'idée de créer un CMS sous forme de site web), pour afficher une page X on doit charger différents modules dans les zones appropriées. Pour cela je me base sur trois choses:
  • l'URL (évidement)
  • le status de l'utilisateur (admin, membre, invite etc .)
  • l'event (un joker pour afficher différemment selon le bon vouloir de l'administrateur).

Bref on a donc une Page = une liste de Zone-Module dépendante de ces 3 paramètres.

L'idée classique est de faire un simple switch ultra long, qui va s'allonger à chaque nouvelle page, nouveau type de membre etc.

L'idée était aussi de créer une table SQL (MySQL InnoDB) pour gérer tous ça (voire 2, je ne suis pas encore sûr).

Sachant qu'on est connecté à la BDD d'office, j'aimerais savoir laquelle de ces deux méthodes sera la plus performante et/ou la plus évolutive.

P.S: s'il vous plaît, ne dites pas "ça dépend" sans préciser (précisément) de quoi ça dépend, merci.
eva-axis est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 02/02/2012, 14h03   #2
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 3 001
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 3 001
Points : 5 054
Points : 5 054
Ni l'un ni l'autre, il faut que tu mettes en place un design logiciel qui réponde à ce besoin. Je te recommande le patron MVC: http://julien-pauli.developpez.com/t...vc-controleur/
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2012, 14h31   #3
Invité de passage
 
Inscription : janvier 2012
Messages : 5
Détails du profil
Informations forums :
Inscription : janvier 2012
Messages : 5
Points : 0
Points : 0
Il est deja en MVC et la c'est le front controller qui doit s'en charger, mais je vois pas en quoi sa influe sur le problemme.
eva-axis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2012, 15h11   #4
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 3 001
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 3 001
Points : 5 054
Points : 5 054
Eh bien c'est normalement le rôle du routeur de permettre l'accès aux pages selon ces 3 paramètres. Les pages n'ont pas besoin d'être physiques, un seul contrôleur peut se charger de plusieurs pages et différencier le contenu selon ces 3 fameux paramètres en choisissant les données à importer de MySQL par exemple.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2012, 15h22   #5
Invité de passage
 
Inscription : janvier 2012
Messages : 5
Détails du profil
Informations forums :
Inscription : janvier 2012
Messages : 5
Points : 0
Points : 0
Voilà, la question est ou stoquer ces donnes, de manière classique, on fait un switch énorme avec toutes les possibilités, je voudrais essayer l'idee de les stoquer avec MySql, je demande justement lequel de ces deux methode était la plus rapide.
D'après mes tests le Switch se révèlent plus rapides, mais j'aimerais avoir confirmation (ou infirmation^^).
eva-axis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2012, 16h05   #6
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 3 001
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 3 001
Points : 5 054
Points : 5 054
Pour répondre à la question: MySQL sera toujours plus lent qu'un bon gros SWITCH.

Mais c'est en réalité une fausse question que tu poses là, un CMS à pour vocation de travailler avec une quantité illimitée de données sans jamais toucher au code source de l'application (ce qui serait le cas avec un switch vu que tu serais obligé de définir les données "en dur" dans le code PHP). Il est question ici de flexibilité, non de performances.

Tu n'est par ailleurs pas obligé de choisir MySQL, il existe d'autres SGBD comme SQLite, PostgreSQL, MongoDB etc. et d'autres moyens de stocker des données comme XML, JSON, INI, Redis, Memcached...

A toi de trouver ce qui correspond le mieux à ton besoin: s'il s'agit d'extraire des bouts de contenu variants peu, XML ou JSON seront tout à fait apte à endosser ce rôle. En revanche, si les données sont relationnelles (comme par exemple un article et ses commentaires) alors une base de données sera plus appropriée.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est actuellement connecté   Envoyer un message privé Réponse avec citation 10
Vieux 02/02/2012, 16h05   #7
Expert Confirmé
 
Avatar de grunk
 
Homme Olivier
Développeur Web
Inscription : août 2003
Messages : 1 837
Détails du profil
Informations personnelles :
Nom : Homme Olivier
Âge : 27
Localisation : France, Côte d'Or (Bourgogne)

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

Informations forums :
Inscription : août 2003
Messages : 1 837
Points : 3 318
Points : 3 318
Un peu de code pourrait peut être aider à y voir plus clair.
Avec un MVC bien structuré tu n'as pas besoin de base de données ni de gros switch comme tu semble vouloir le faire.
grunk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2012, 16h13   #8
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 3 001
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 3 001
Points : 5 054
Points : 5 054
Enfin, s'il veut vraiment se construire son CMS maison, il vaut mieux pour lui qu'il ait un moyen de construire dynamiquement ses pages. Le MVC statique à ses limites
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2012, 16h39   #9
Invité de passage
 
Inscription : janvier 2012
Messages : 5
Détails du profil
Informations forums :
Inscription : janvier 2012
Messages : 5
Points : 0
Points : 0
Le code heuu... il y en a pas, etand donner qu'il n'y a ni bug ni problème concret ^^

Après une batterie de tests assez précise j'ai les résultats, ce sont les valeurs moyennes de 100 tests successifs.
0.000030994415283203 secondes => 100 elseif a 2 condition
0.000015974044799805 secondes => 100 switch a 2 condition
0.00045585632324219 secondes => table de 100 entrer avec 2 condition
0.0023970603942871 secondes => recherche de fichier dans un dossier a 100 fichier (style zend).

avec 1000 cela donne un resultat similaire.

Bon bin la différence n'est aps aussi catastrophique que je pensais, et puis comme tu l'as dit, utilise une bdd offre un gros a la maintenance, le truc c'est que j'ai la trouille de créer un bon cms mais trop lent donc j'essaye de perdre un minimum de temps dans chaque opération, surtout si elle est exécuté à chaque requete.
eva-axis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2012, 16h51   #10
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 3 001
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 3 001
Points : 5 054
Points : 5 054
Ok maintenant reste à se poser la question de la pertinence de la réalisation d'un tel projet vu qu'il existe plus de 350 CMS écrits en PHP à l'heure actuelle.

Pourquoi ne pas s'orienter vers un CMS existant ?
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2012, 17h58   #11
Invité de passage
 
Inscription : janvier 2012
Messages : 5
Détails du profil
Informations forums :
Inscription : janvier 2012
Messages : 5
Points : 0
Points : 0
J'étudie l'informatique dans le meilleur universiter d'informatique en russie, si je suis incapable de créer un CMS, je pourrais difficilement dire que je me Considérer comme connaisseur dans les technologies web.

Sinon autant considérer quelqu'un utilisant Publisher comme un webmaster.
eva-axis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2012, 18h45   #12
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 3 001
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 3 001
Points : 5 054
Points : 5 054
Ok alors bon courage
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h15.


 
 
 
 
Partenaires

Hébergement Web