Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & SQL-Server
PHP & SQL-Server Forum d'entraide sur SQL-Server avec PHP. Avant de poster -> FAQ SQL-Server
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 21/07/2006, 15h14   #1
Expert Confirmé
 
Avatar de berceker united
 
Développeur informatique
Inscription : février 2005
Messages : 2 982
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : février 2005
Messages : 2 982
Points : 3 567
Points : 3 567
Par défaut Gros volume d'informations

Bonjour.
Toujours dans le cadre de mon application je me pose la question de "Oui mais si les utilisateurs ajoutes des milliers de produits ?" Bien souvent nous faisons de test sur quelques produit mais lorsque ça atteind des centaines de milliers comme le système se comporte surtout dans le cas de l'utilisation d'un limite?
J'ai pensé à utiliser une table déporté qui lui va contenir que les id de la table principale.
SELECT id FROM tb_deporte LIMIT 1257000, 10
SELECT * FROM tb_normal WHERE monchamps IN(mes id retourné ci-dessus)

est-ce une bonne idée ou non ?
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...
berceker united est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/07/2006, 15h29   #2
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
Tu dupliques les infos en faisant ça nan
Et ça fait comme une jointure, à mon avis ça tire plus qu'en faisant une requête classique (mais je suis pas spécialiste BDD, d'ailleurs ta question aurait de meilleures réponses en postant chez eux )

PS : pour ta signature je me suis pas mal demandé d'où ça venais et c'était à la télé l'autre soir mdr en entendant ça
__________________
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/07/2006, 15h44   #3
Expert Confirmé
 
Avatar de berceker united
 
Développeur informatique
Inscription : février 2005
Messages : 2 982
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : février 2005
Messages : 2 982
Points : 3 567
Points : 3 567
Oui ça duplique uniquement l'id et effectivement c'est pas terrible mais apparement c'est un problème qui devient très important lors de l'utilisation d'un limite sur du gros volume.
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...
berceker united est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/07/2006, 17h08   #4
Membre expérimenté
 
Inscription : avril 2006
Messages : 462
Détails du profil
Informations personnelles :
Âge : 33
Localisation : Canada

Informations forums :
Inscription : avril 2006
Messages : 462
Points : 556
Points : 556
Envoyer un message via MSN à rbaatouc Envoyer un message via Skype™ à rbaatouc
kan ya de gros volume fo savoir otpimiser aussi comme pour ton code :
- placement intelligent d'index dans tes tables
- activer le query cache (dispo seulemtna partir de mysql 4.0.1 je crois)
- optimiser la structure des tables

voici un lien qui texplique un peu tout ça :
http://dev.mysql.com/doc/refman/5.0/...structure.html
rbaatouc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/07/2006, 23h20   #5
Membre Expert
 
Inscription : juillet 2004
Messages : 1 033
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 1 033
Points : 1 050
Points : 1 050
Je regrette un peu que tu n'exposes pas plus clairement ton problème :/
Car à part balancer des réponses bateau, même utile, je ne voit pas trop comment t'aider.....

D'ailleurs dans le genre réponses bateau, as tu pensé à revoir la structure de ta bdd ?
ePoX est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/07/2006, 09h39   #6
Expert Confirmé
 
Avatar de berceker united
 
Développeur informatique
Inscription : février 2005
Messages : 2 982
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : février 2005
Messages : 2 982
Points : 3 567
Points : 3 567
Pour l'instant je n'ai pas de problème et je ne pense pas que la structure de mes soit mauvaise car j'ai fais en sorte de dispatcher élément redondant et placé les index sur les éléments pivot. Plus utiliser des valeurs numérique. Mais essayez de faire un limit ver la fin sur une table qui compte plus d'un millions d'enregistrement vous verrez que ça peut ramer. Surtout que sous SQLServer ça n'existe pas il faut ruser (j'ai utilisé la methode trouvé ici). Idem lorsqu'il y a une recherche à effectuer avec l'opérateur LIKE qui assez gourmand.
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...
berceker united est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/07/2006, 09h53   #7
NoT
Membre confirmé
 
Inscription : février 2004
Messages : 237
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 237
Points : 261
Points : 261
J'ai parcouru ton post vite fait et je me trompes peut-être mais il me semble que ce que tu fais n'est ni plus ni moins que de recréer un index manuellement sur un des champs de ta base, alors que la plupart des bases de données le propose en natif, tu devrais t'intéresser à cette histoire d'index, ça améliore considérablement les accès dès que la table devient bien rempli.
NoT est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/07/2006, 10h18   #8
Expert Confirmé
 
Avatar de berceker united
 
Développeur informatique
Inscription : février 2005
Messages : 2 982
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : février 2005
Messages : 2 982
Points : 3 567
Points : 3 567
Apparement de ce que j'ai lu sur un autre forum PhpBb avait se problème du faite que lorsqu'il y avait un gros volume de données + l'utilisation du LIMIT. Le developpeur du forum "MesDiscutions" a lui contourné le problème en utilisant le systeme cité au dessus. C'est de là que je m'interroge sur ce qu'il risque d'arriver lorsqu'il y a un gros volume. De toute façon il faut que je fasse des test en y enregistrant des millions d'enregistement pour voir le comportement et faire des optimisation.
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...
berceker united est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/07/2006, 21h05   #9
Membre Expert
 
Inscription : juillet 2004
Messages : 1 033
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 1 033
Points : 1 050
Points : 1 050
Le système dont tu parles plus haut peut provoquer une dégradation de l'intégrité des données.
En effet pour peu qu'une action soit oubliée ou que sais je encore, tu pourrais te retrouver avec des index qui ne devrait plus exister, par exemple.

Sinon sur le principe dans les cas particuliers ou l'on à vraiment pas d'autre choix c'est effectivement la méthode à adopter.
Mais encore une fois je me permet d'insister, car ton projet n'est pas encore en production, essaie de repenser ton schéma, voir même à l'orientation globale du projet. Ceci afin de prendre en compte dès le départ cette problématique et d'y apporter les solutions les plus saines et adéquats possible.

Enfin je me permet juste une petite note. En effet des milliers d'items avec n relations cela reste physiquement gérable par une machine **normale**, alors que des millions d'items avec n relations, l'ordre de grandeur n'est vraiment plus du tout le même.
Et dans le cas de millions d'items ta question n'à plus rien à faire ici à mon sens, car il te faudra bien plus qu'une simple optimisation du code.

bbye
ePoX est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/07/2006, 21h54   #10
Expert Confirmé
 
Avatar de berceker united
 
Développeur informatique
Inscription : février 2005
Messages : 2 982
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : février 2005
Messages : 2 982
Points : 3 567
Points : 3 567
En faite, le millions d'enregistrement pour mon projet me parait assez démesuré Je pense qu'a ça va jamais atteindre le milliers pour le coeur du system et c'est déjà énorme. J'ai déjà pensé à des mécanismes pour réduire les jointures via des objet déjà en mémoire partagé.
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...
berceker united est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/07/2006, 09h24   #11
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
Bah ça va si tu as moins de 1000 enregistrements devrait pas y avoir de souci alors... C'est quedal... Enfin à mon avis, reste à voir effectivement ce que ça donne en fonctionnement mais bon...
__________________
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/07/2006, 09h41   #12
Membre Expert
 
Inscription : avril 2006
Messages : 1 338
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : avril 2006
Messages : 1 338
Points : 1 315
Points : 1 315
+1 JWhite c clair c quedal mille enregistrements...en principe t'auras pas de probleme de temps
__________________
Stay in Bed .. Save Energy
boo64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/07/2006, 09h46   #13
Expert Confirmé
 
Avatar de berceker united
 
Développeur informatique
Inscription : février 2005
Messages : 2 982
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : février 2005
Messages : 2 982
Points : 3 567
Points : 3 567
1000 c'est mon avis. En faite je fais une application e-commerce et je ne connais pas de site ayant plus de 1000 produit en ligne sauf gros compte telle qu'Amazon ou 3 suisse la redoute. Néanmoins je voudrais prouver que le systeme est garable jusqu'a x articles avec coéficient de complexité moyennement élevé.
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...
berceker united est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h28.


 
 
 
 
Partenaires

Hébergement Web