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

 


 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  321  322  323  ..  486  487  488  489  490  491
Auteur Sujet :

les développeurs de forums, les 3/4 des forums sont down /o\

n°1253582
cinocks
Posté le 26-11-2005 à 00:14:29  profilanswer
 

Reprise du message précédent :
que ce soit une grosse table ou plusieures petites, le volume d'index aura la meme taille. Je pense meme que plusieurs petits est plus efficace lorsque ca devient vraiment tres gros.


---------------
MZP est de retour
mood
Publicité
Posté le 26-11-2005 à 00:14:29  profilanswer
 

n°1253584
fabien
Vive la super 5 !
Posté le 26-11-2005 à 00:19:19  profilanswer
 

ben deja une table par cat, ca evite la clause "where cat=XXX", donc ca optimise la requete, ensuite ca fait un index de moins sur la cat "cat" puisque qu'elle n'existe pas, donc aussi un gain de place.


---------------
Découvre le HFRcoin ✈ - smilies
n°1253702
Cyrius-c
Posté le 26-11-2005 à 13:19:15  profilanswer
 

De toute facon c'est inévitable non?
Une table postforum avec 20 miullions de lignes serait très très grosse!
Si ou fait select post12321 from postforum la requete mettrait plusieurs minutes à ettre executée non?

n°1253703
Limit
Posté le 26-11-2005 à 13:24:41  profilanswer
 

non pas du tout

n°1253726
fabien
Vive la super 5 !
Posté le 26-11-2005 à 14:40:18  profilanswer
 

Cyrius-c a écrit :

De toute facon c'est inévitable non?
Une table postforum avec 20 miullions de lignes serait très très grosse!
Si ou fait select post12321 from postforum la requete mettrait plusieurs minutes à ettre executée non?


sais tu ce que c'est un index ?


---------------
Découvre le HFRcoin ✈ - smilies
n°1253733
masklinn
í dag viðrar vel til loftárása
Posté le 26-11-2005 à 14:59:23  profilanswer
 

Cyrius-c a écrit :

De toute facon c'est inévitable non?
Une table postforum avec 20 miullions de lignes serait très très grosse!
Si ou fait select post12321 from postforum la requete mettrait plusieurs minutes à ettre executée non?


20 millions de lignes pour une table c'est pas énorme hein.


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°1253736
Cyrius-c
Posté le 26-11-2005 à 15:06:34  profilanswer
 

J'ai pourtant fait un test.
1 million de lignes, genre
id, nom, groupe
 
J'ai mis un index sur groupe
Quand je fais SELECT id,nom,groupe WHERE groupe=$_GET['groupe'] la requete met presque une minute à s'executer
 
Sois j'ai mal fait ma requetes, sois j'ai mal mis mon index.

n°1253739
fabien
Vive la super 5 !
Posté le 26-11-2005 à 15:09:54  profilanswer
 

Cyrius-c a écrit :

J'ai pourtant fait un test.
1 million de lignes, genre
id, nom, groupe
 
J'ai mis un index sur groupe
Quand je fais SELECT id,nom,groupe WHERE groupe=$_GET['groupe'] la requete met presque une minute à s'executer
 
Sois j'ai mal fait ma requetes, sois j'ai mal mis mon index.


tu as combien de groupe ?
 
faut mettre un "limit" aussi, car si tu recupere des millions de ligne, c'est sur que ca va etre lent.
 


---------------
Découvre le HFRcoin ✈ - smilies
n°1253740
0x90
Posté le 26-11-2005 à 15:13:53  profilanswer
 

Donald Knuth: "Premature optimization is the root of all evil".


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°1253742
Multinickn​ame
Ah bon...
Posté le 26-11-2005 à 15:16:51  profilanswer
 

:hello:
 
j'ai une petite question, c'est a propos de mes requetes, j'aimerais savoir s'il est préférable de faire des requêtes à rallonge ou plusieurs requêtes simples?
 
De plus je me suis toujours posé la question sur la bonne façon de m'y prendre, exemple sur cette requête :
 

Code :
  1. $sql_up_ct = "UPDATE cats,topics SET
  2.                          cats.last_poster='".$_SESSION['pseudo']."',
  3.                          topics.last_poster='".$_SESSION['pseudo']."',
  4.                          cats.last_post='".time()."',
  5.                          topics.last_post='".time()."',
  6.                          cats.nb_posts='".$compteur_cat."',
  7.                          topics.nb_posts='".$compteur_nb_posts."'
  8.                          WHERE cats.id='".$_GET['showforum']."' AND topics.id='".$_GET['showtopic']."'";


 
- Niveau guillemets, c'est bon ou il est possible de simplifier ou autre?
- Dans cette requete, j'ai des champs du genre cats.last_poster et topics.last_poster qui ont la même variable à insérer, y a t'il un moyen de grouper pour les deux?
- Est il préférable de faire un requete pour chacune des tables à mettre à jour, qu'est ce qui est le + rapide?  
 
Merci de m'éclairer ne serait-ce qu'un minimum là dessus :jap: J'ai des doutes à propos de ce que je fais...


---------------
Feaks Forum
mood
Publicité
Posté le 26-11-2005 à 15:16:51  profilanswer
 

n°1253750
Cyrius-c
Posté le 26-11-2005 à 15:48:34  profilanswer
 

fabien a écrit :

tu as combien de groupe ?
 
faut mettre un "limit" aussi, car si tu recupere des millions de ligne, c'est sur que ca va etre lent.


J'ai une trentaine de groupe.
Mais j'avais oublié de préciser, j'ai fais ce select et ca m'affiche une trentaine de lignes cherchées dans un million  
C'est plus clair :jap:

n°1253752
fabien
Vive la super 5 !
Posté le 26-11-2005 à 16:01:52  profilanswer
 

Cyrius-c a écrit :

J'ai une trentaine de groupe.
Mais j'avais oublié de préciser, j'ai fais ce select et ca m'affiche une trentaine de lignes cherchées dans un million  
C'est plus clair :jap:


 
met "explain" devant ta requete pour voir ce que ca donne.
 
Sinon, meme avant que tu me donne ces resultats, on peut faire un petit calcul:
 
1000 000 / 30 = 33 333
 
Donc en moyenne, il te faudra parcourir 33 000 lignes a chaque requetes avec un index, cela depend combiens d'enregistrements il y a dans tes groupes.
Sans index, il aurait été possible qu'il parcour les millions d'enregistrements s'il trouve moins de 30 resultats.
 
donc, on peut comprendre la lenteur de ta requete.
 


---------------
Découvre le HFRcoin ✈ - smilies
n°1253760
drasche
Posté le 26-11-2005 à 16:22:18  profilanswer
 

Fabien, tu connais la recherche par dichotomie?


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°1253762
skeye
Posté le 26-11-2005 à 16:25:47  profilanswer
 

[:rofl]


---------------
Can't buy what I want because it's free -
n°1253775
fabien
Vive la super 5 !
Posté le 26-11-2005 à 16:41:31  profilanswer
 

drasche a écrit :

Fabien, tu connais la recherche par dichotomie?


t'es sur que l'optimiseur de mysql marche comme ca ?
a mon avis, si l'index sert persque a rien, il parcourt toute la table.
tu devrais tester avec une colone ou il y a trés peu d'enregistrements different.
 
Mais bon, j'aimerai bien voir son explain, pour voir ce qui ralenti sa requete et comment reagit l'optimiseur de mysql.


---------------
Découvre le HFRcoin ✈ - smilies
n°1253789
drasche
Posté le 26-11-2005 à 16:54:43  profilanswer
 

Non mais je veux dire, il va pas se casser le cul à parcourir tout l'index s'il peut utiliser une technique qui lui permettra de parcourir quelques éléments de l'index seulement :o


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°1253795
fabien
Vive la super 5 !
Posté le 26-11-2005 à 16:59:09  profilanswer
 

drasche a écrit :

Non mais je veux dire, il va pas se casser le cul à parcourir tout l'index s'il peut utiliser une technique qui lui permettra de parcourir quelques éléments de l'index seulement :o


ben reste a voir si cette technique existe dans l'optimiseur de mysql.
C'est un peu comme si je donnais une solution de faire deux requete et que toi tu arrive derriere en me disant "les requetes imbriqués tu connais? " .  


---------------
Découvre le HFRcoin ✈ - smilies
n°1253802
pascal_
Posté le 26-11-2005 à 17:05:29  profilanswer
 

Normalement, l'index devrait lui donner immédiatement les 30 valeurs ou groupe=$_GET['groupe'], le résultat devrait être persque immédiat  :spamafote:

n°1253803
drasche
Posté le 26-11-2005 à 17:05:58  profilanswer
 

ben la dichotomie est une technique assez accessible pour ne pas dire de base :o Maintenant ils peuvent avoir mis au point un truc plus rapide, je ne sais pas [:pingouino]


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°1253804
Cyrius-c
Posté le 26-11-2005 à 17:06:54  profilanswer
 

Ah en fait je viens de voir ce qui n'allait pas.
Je mettais AND accept='oui' dans la clause where.  
J'avais pas mis d'index sur acept :d

n°1253808
Puissance ​Athlon XP
Posté le 26-11-2005 à 17:14:55  profilanswer
 

pourquoi ne pas utiliser un entier (1 ou 0) pour ce genre de colonnes bolléennes  ?

n°1253813
pascal_
Posté le 26-11-2005 à 17:29:32  profilanswer
 

Cyrius-c a écrit :

Ah en fait je viens de voir ce qui n'allait pas.
Je mettais AND accept='oui' dans la clause where.  
J'avais pas mis d'index sur acept :d


 
quand tu auras tout dit :o
 
Sinon, je viens de faire un tests sur une table(id, nom, groupe) de 1 200 000 lignes.
Req sans index : 1.7s
Création de l'index : 26s
Req avec index : 0.046s :D
 
Par contre :

Citation :

Espace utilisé :  
Type Espace  
Données 29 332 Ko  
Index 21 297 Ko  
Total 50 629 Ko


n°1253815
pascal_
Posté le 26-11-2005 à 17:31:38  profilanswer
 

Puissance Athlon XP a écrit :

pourquoi ne pas utiliser un entier (1 ou 0) pour ce genre de colonnes bolléennes  ?


 
J'espère pour lui que c'est au moins un ENUM.


Message édité par pascal_ le 26-11-2005 à 17:32:04
n°1253881
Max Evans
Posté le 26-11-2005 à 18:48:55  profilanswer
 

pascal_ a écrit :

quand tu auras tout dit :o
 
Sinon, je viens de faire un tests sur une table(id, nom, groupe) de 1 200 000 lignes.
Req sans index : 1.7s
Création de l'index : 26s
Req avec index : 0.046s :D
 
Par contre :

Citation :

Espace utilisé :  
Type Espace  
Données 29 332 Ko  
Index 21 297 Ko  
Total 50 629 Ko



 
Rajoute un ORDER BY quelconque, le mythe s'écroule :o

Message cité 1 fois
Message édité par Max Evans le 26-11-2005 à 18:49:18

---------------
Envie d'un bol d'air ? Traxxas Revo 3.3
n°1253902
pascal_
Posté le 26-11-2005 à 19:32:27  profilanswer
 

Max Evans a écrit :

Rajoute un ORDER BY quelconque, le mythe s'écroule :o


 
 :??:  
Si le ORDER BY s'applique sur les 30 lignes retournées, ça va pas être beaucoup plus lent.

n°1253904
Max Evans
Posté le 26-11-2005 à 19:35:01  profilanswer
 

pascal_ a écrit :

:??:  
Si le ORDER BY s'applique sur les 30 lignes retournées, ça va pas être beaucoup plus lent.


Bah tested and disaprooved maintes fois :D


---------------
Envie d'un bol d'air ? Traxxas Revo 3.3
n°1253907
The-Shadow
Développeur
T'as été voir dans ton profil?
Posté le 26-11-2005 à 19:37:13  profilanswer
 

Le ORDER BY s'applique à la totalité de la table.
 
Si tu fais un
SELECT nom FROM matable ORDER BY nom DESC LIMIT 30
Si tu as 300.000 noms, il va bien classer d'abord l'intégralité des noms pour te donner tes 30 noms en Z (par exemple), il ne va pas faire un tri dans les 30 premiers résultats.

Message cité 3 fois
Message édité par The-Shadow le 26-11-2005 à 19:37:52
n°1253909
Max Evans
Posté le 26-11-2005 à 19:39:57  profilanswer
 

The-Shadow a écrit :

Le ORDER BY s'applique à la totalité de la table.
 
Si tu fais un
SELECT nom FROM matable ORDER BY nom DESC LIMIT 30
Si tu as 300.000 noms, il va bien classer d'abord l'intégralité des noms pour te donner tes 30 noms en Z (par exemple), il ne va pas faire un tri dans les 30 premiers résultats.


D'où la grosse baisse de perfs :(


---------------
Envie d'un bol d'air ? Traxxas Revo 3.3
n°1253910
pascal_
Posté le 26-11-2005 à 19:40:43  profilanswer
 

The-Shadow a écrit :

Le ORDER BY s'applique à la totalité de la table.
 
Si tu fais un
SELECT nom FROM matable ORDER BY nom DESC LIMIT 30
Si tu as 300.000 noms, il va bien classer d'abord l'intégralité des noms pour te donner tes 30 noms en Z (par exemple), il ne va pas faire un tri dans les 30 premiers résultats.


 
Dans ce cas là, ok, mais c'est un problème de LIMIT pas d'ORDER BY :o
 
Si tu fais SELECT nom FROM matable WHERE groupe=2 ORDER BY nom et qu'il n'y a que 30 résultats, ça va pas changer grand chose qu'il y est un ORDER ou pas.

n°1253980
e-deby
Posté le 26-11-2005 à 22:09:43  profilanswer
 

Puissance Athlon XP a écrit :

pourquoi ne pas utiliser un entier (1 ou 0) pour ce genre de colonnes bolléennes  ?


parce que un ENUM c'est mieux :)


---------------
Pour les sudistes :)
n°1253983
Cyrius-c
Posté le 26-11-2005 à 22:14:01  profilanswer
 

The-Shadow a écrit :

Le ORDER BY s'applique à la totalité de la table.
 
Si tu fais un
SELECT nom FROM matable ORDER BY nom DESC LIMIT 30
Si tu as 300.000 noms, il va bien classer d'abord l'intégralité des noms pour te donner tes 30 noms en Z (par exemple), il ne va pas faire un tri dans les 30 premiers résultats.


Comment remédier a cela alors?

n°1253989
Multinickn​ame
Ah bon...
Posté le 26-11-2005 à 22:29:24  profilanswer
 

e-deby a écrit :

parce que un ENUM c'est mieux :)


 
pour ce genre de colonne, ou j'ai le choix entre 1 et 0 j'utilise TINYINT(1), c'est pas la meilleure solution?
 
(Etant donné que je suis nul en optimisation de tables Mysql, bah euh je voulais savoir ... :d)


---------------
Feaks Forum
n°1253995
Puissance ​Athlon XP
Posté le 26-11-2005 à 23:14:20  profilanswer
 

e-deby a écrit :

parce que un ENUM c'est mieux :)


 
Ca je savais pas :)
 
'fin j'y mettrai quand même 0 et 1 comme valeurs, juste pour faciliter le code après...

n°1254059
pascal_
Posté le 27-11-2005 à 10:01:15  profilanswer
 

Cyrius-c a écrit :

Comment remédier a cela alors?


 
Faut pas utiliser de ORDER BY avec du LIMIT quand ça demande trop de ressource.
 
Sur un forum par exemple, il ne faut pas pour afficher les 30 posts de la page x faire :
 
SELECT (....) WHERE (...) ORDER BY datePost LIMIT 30*x, 30*(x+1)
 
mais ajouter un champ numéro post et faire  
 
SELECT (....) WHERE (...) noPost BETWEEN  30*x AND 30*(x+1)
 
...et gérer les suppressions de post en mettant à jour les noPost.
 

n°1254075
docmaboul
Posté le 27-11-2005 à 10:53:07  profilanswer
 

skylight a écrit :

Oui, cependant, ce n'est pas les mêmes technologies utilisées ici... car il utilise des mises en cache sur disque dur, donc lorsque tu consultes une page, tu ne fais que lire un fichier, il n'y a plus de requête.


 
Nan. C'est une mise en cache mémoire des informations de la base sous forme structurée (un genre de memcached en plus efficient mais aussi en plus limité).
 

Citation :

Les inconvénients de son système : adieu la personnalisation des couleurs, and co.
La mise en cache implique une même présentation pour tout le monde, et / ou si c'est simplement l'information qui est stockée, alors il y aura requête pour récupérer les paramètres personnels du membre connecté -> requêtes -> augmentation du temps de génération et de la charge serveur :)
 
A+


 
Non plus. Les principaux inconvénients de mon bousin, c'est:
1°) trop de code et de couches à maintenir
2°) archi trop complexe et donc chiante à débuguer
3°) archi difficilement distribuable sur plusieurs serveurs en l'état
4°) du code très crade par endroits (genre mon générateur de code)
5°) manque de temps et de motivation pour remettre tout ça au propre (j'ai envie de le passer en opensource mais j'aurais le rouge de la honte au front si on voyait ce que j'ai fait par endroits)

n°1254079
docmaboul
Posté le 27-11-2005 à 10:55:31  profilanswer
 

fabien a écrit :

tout est relatif. faudrait tester son forum avec les memes options, des millions de messages comme sur hfr des milliers  de connéctés et avec la meme config serveur ...


 
pis avec un boinc qui tourne en permanence sur le serveur [:ddr555]

n°1256419
skylight
Made in France.
Posté le 30-11-2005 à 21:41:34  profilanswer
 

First post needs update : my website has changed its location, it's now reachable at http://skyforum.ayzo.net/liste.html !
 
A+

n°1256481
fabien
Vive la super 5 !
Posté le 30-11-2005 à 22:44:59  profilanswer
 

skylight a écrit :

First post needs update : my website has changed its location, it's now reachable at http://skyforum.ayzo.net/liste.html !
 
A+


hello :hello:
 
why your stats "nedstats" are broken ?
and why you don't have a page to download your board ?
 
thank you


---------------
Découvre le HFRcoin ✈ - smilies
n°1256490
skylight
Made in France.
Posté le 30-11-2005 à 22:53:48  profilanswer
 

Hello,
 
nedstats is broken 'cause they mailed me about my counter : its was on many pages instead of legally one. strange... so I stopped my account, useless. Webaliser, which is installed over ayzo's server, is more accurate.  
There's no download 'cause I stopped development, and v5 will be out soon...
For v4 downloads, simply check this board : forum.le-node.net :o
 
A+

n°1256493
The-Shadow
Développeur
T'as été voir dans ton profil?
Posté le 30-11-2005 à 22:55:31  profilanswer
 

De toutes façons, Netstats, ça existe plus, c'est devenu Web4you et ça rajoute des popups au site, bouhhhh...

n°1256504
chaced
Posté le 30-11-2005 à 23:06:16  profilanswer
 

Shakespear loose, Moliere win.... :lol:


---------------
CPU-Z | Timespy | Mes bd | Mon blog
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  321  322  323  ..  486  487  488  489  490  491

Aller à :
Ajouter une réponse
 

Sujets relatifs
question avec les forums phpbb2[php] trouver la premier place ou inserer un enregistrement (résolu)
Forums phpBBQui connait l'algo du Passticket et sa mise en place en VB ?
[Merise] Mise en place d'un MCDFocus mal placé....
[Blabla/Prog] Les développeurs foromeurs sont-ils des feignasses?Mise en place d'un formulaire CGI
forums création de site internetJava - Mise en place d'une api (Servlet)
Plus de sujets relatifs à : les développeurs de forums, les 3/4 des forums sont down /o\


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)