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

 


 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  350  351  352  ..  486  487  488  489  490  491
Auteur Sujet :

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

n°1348365
fabien
Vive la super 5 !
Posté le 17-04-2006 à 21:48:43  profilanswer
 

Reprise du message précédent :
 
c'est quoi comme forum? j'ai cherché, j'ai pas trouvé de nom. c'est du fait maison ?


---------------
Découvre le HFRcoin ✈ - smilies
mood
Publicité
Posté le 17-04-2006 à 21:48:43  profilanswer
 

n°1348368
KangOl
Profil : pointeur
Posté le 17-04-2006 à 21:55:13  profilanswer
 

c'est un vBulletin

n°1348402
belgique
Posté le 17-04-2006 à 22:56:19  profilanswer
 

joce a écrit :

Ba

 

CREATE TEMPORARY TABLE pouet SELECT numreponse FROM threadhardwarefr13 WHERE numeropost='11183' ORDER BY numreponse LIMIT 561000,30;
SELECT * FROM pouet LEFT JOIN threadhardwarefr13 USING (numreponse) ORDER BY numreponse ASC;

 

=> 0.57s + 0.01s

 

rulez    :D  

 



 


En gros t'es en train de nous expliquer que toutes les optimisations à la con pour éviter d'utiliser un LIMIT sont inutiles car en fait le parcours total d'un index reste malgré tout relativement rapide et que c'était le rapatriement de tout qui faisait tout ramer?   [:ddr555]

 

Tiens ça marcherait pas en une requête en utilisant 2 fois la même table sous des noms différents?

 

Enfin ça prend quand même que 0.01s quand on connait directement les bonnes clés, un between doit quand même aller plus vite. Fin faut voir le mechanisme que t'as derrière pour utiliser le between. :o

Message cité 2 fois
Message édité par belgique le 17-04-2006 à 22:59:58
n°1348422
anthomicro
Posté le 17-04-2006 à 23:18:44  profilanswer
 

belgique a écrit :

En gros t'es en train de nous expliquer que toutes les optimisations à la con pour éviter d'utiliser un LIMIT sont inutiles car en fait le parcours total d'un index reste malgré tout relativement rapide et que c'était le rapatriement de tout qui faisait tout ramer?


 
C'est impossible, un LIMIT sera beaucoup plus lent (et plus la quantité de données présentes dans la table augmente plus c'est vérifiable)

n°1348431
joce
"BugHunter"
Posté le 17-04-2006 à 23:34:23  profilanswer
 

belgique a écrit :

Tiens ça marcherait pas en une requête en utilisant 2 fois la même table sous des noms différents?

Déjà testé : non :D
Parce que le limit s'applique au resultat de la jointure et donc il est obligé de faire la jointure et de chopper tous les résultats avant de faire le LIMIT.

n°1348433
joce
"BugHunter"
Posté le 17-04-2006 à 23:36:13  profilanswer
 

anthomicro a écrit :

C'est impossible, un LIMIT sera beaucoup plus lent (et plus la quantité de données présentes dans la table augmente plus c'est vérifiable)


yep, un BETWEEN reste clairement la solution ultime.
Mais c'est interessant comme résultat, ca vaudrait le coup que MySQL se penche dessus pour affiner leur optimiser :o


Message édité par joce le 17-04-2006 à 23:36:52
n°1348439
anthomicro
Posté le 17-04-2006 à 23:46:08  profilanswer
 

ça donnerait une raison d'exister aux forums PHPBB, IPB, SMF et j'en passe ^^

n°1348445
belgique
Posté le 17-04-2006 à 23:55:46  profilanswer
 

joce a écrit :

Déjà testé : non    :D  
Parce que le limit s'applique au resultat de la jointure et donc il est obligé de faire la jointure et de chopper tous les résultats avant de faire le LIMIT.

 



  


Quel idiot je suis   :D  . En écrivant la requête même mentalement jusqu'au bout (jusqu'au LIMIT) on se rend compte que ça ne peut pas marcher  [:ddr555]

Message cité 1 fois
Message édité par belgique le 18-04-2006 à 00:02:08
n°1348448
fabien
Vive la super 5 !
Posté le 18-04-2006 à 00:07:25  profilanswer
 

depuis plusieurs page vous parlez de limit, mais vous appliquez cela a quel partie du forum ? vous essayer d'optimiser quelle partie? un gros topic ?


---------------
Découvre le HFRcoin ✈ - smilies
n°1348450
nraynaud
lol
Posté le 18-04-2006 à 00:16:55  profilanswer
 

tout ce qui est paginé je suppose.

mood
Publicité
Posté le 18-04-2006 à 00:16:55  profilanswer
 

n°1348453
joce
"BugHunter"
Posté le 18-04-2006 à 00:26:00  profilanswer
 

belgique a écrit :

Quel idiot je suis   :D  . En écrivant la requête même mentalement jusqu'au bout (jusqu'au LIMIT) on se rend compte que ça ne peut pas marcher  [:ddr555]


ba tant qu'on est pas arrivé au LIMIT c'est bien :D

n°1348455
belgique
Posté le 18-04-2006 à 00:32:05  profilanswer
 

On peut pas fouttre un LIMIT dans une requête imbriquée?  :o

Message cité 1 fois
Message édité par belgique le 18-04-2006 à 00:32:28
n°1348466
anthomicro
Posté le 18-04-2006 à 01:02:51  profilanswer
 

malade :o

n°1348660
joce
"BugHunter"
Posté le 18-04-2006 à 11:43:54  profilanswer
 

belgique a écrit :

On peut pas fouttre un LIMIT dans une requête imbriquée?  :o


Si, mais ca revient plus ou moins a passer par un TEMP table.

n°1348671
belgique
Posté le 18-04-2006 à 11:56:29  profilanswer
 

joce a écrit :

Si, mais ca revient plus ou moins a passer par un TEMP table.


Je trouve ça plus propre. Enfin le mieux serait que les gars de mysql changent leur optimiseur sur un cas pareil.

n°1348684
joce
"BugHunter"
Posté le 18-04-2006 à 12:07:00  profilanswer
 

belgique a écrit :

Je trouve ça plus propre. Enfin le mieux serait que les gars de mysql changent leur optimiseur sur un cas pareil.


ouaip mais ca doit pas etre trivial non plus.
Dans le cas de :
 
- SELECT x,y FROM foo ORDER BY z LIMIT 10000,10
 
Il ne peut appliquer cette optimisation que :
 
- si il y a un index sur (z,x)
- si x est une primary key
 
Qui plus est ca l'oblige a passer par une temp table en interne, et entre une temp table et pas de temp table, generalement il choisit toujours la solution 2.
Dans notre cas, ca doit pas etre evident de savoir quand est-ce que le cout du scan du LIMIT va etre inferieur au cout de la creation de la temp table en interne.

Message cité 1 fois
Message édité par joce le 18-04-2006 à 12:07:31
n°1348741
belgique
Posté le 18-04-2006 à 13:35:19  profilanswer
 

joce a écrit :

ouaip mais ca doit pas etre trivial non plus.
Dans le cas de :

 

- SELECT x,y FROM foo ORDER BY z LIMIT 10000,10

 

Il ne peut appliquer cette optimisation que :

 

- si il y a un index sur (z,x)
- si x est une primary key

 

Qui plus est ca l'oblige a passer par une temp table en interne, et entre une temp table et pas de temp table, generalement il choisit toujours la solution 2.
Dans notre cas, ca doit pas etre evident de savoir quand est-ce que le cout du scan du LIMIT va etre inferieur au cout de la creation de la temp table en interne.

 


 

Vu qu'il ramène toutes les données ça me semble assez vite vu. Peut être choisir des valeurs seuils pour le limit  :spamafote: . Enfin, si ça na pas encore été fait, c'est qu'il doit y avoir une raison genre celle que tu as énnoncée.

Message cité 1 fois
Message édité par belgique le 18-04-2006 à 13:35:48
n°1348790
joce
"BugHunter"
Posté le 18-04-2006 à 14:21:41  profilanswer
 

belgique a écrit :

Vu qu'il ramène toutes les données ça me semble assez vite vu.


Pas forcement, ca depend aussi du deuxieme parametre du limit.
Un LIMIT 100000,10000 par exemple ca serait pas une bonne idee de creer une temp table a mon avis.

n°1348831
belgique
Posté le 18-04-2006 à 15:05:01  profilanswer
 

c'est ce que je disais, ils doivent inventer une formule pour savoir dans quel cas faire quoi :D

n°1348851
antp
Champion des excuses bidons
Posté le 18-04-2006 à 15:17:45  profilanswer
 

Avec vos histoires je suis en train de me demander comment je pourrais arranger les requêtes sur imcdb.org (note : à la base c'est pas moi qui ai fait le truc, même si j'ai en fin de compte j'ai quasi tout refait petit à petit).
 
Pour le moment une des grosses pages fort utilisée est celle qui affiche les derniers commentaires postés sur les différentes fiches. Donc je fais un tri en inverse sur l'ID (pour afficher les derniers d'abord), avec un LIMIT pour la découpe en page, et un SQL_CALC_FOUND_ROWS pour savoir combien y aurait eu de résultats au total.
J'imagine que c'est très mal :D  
D'autant plus que la jointure avec la table "users" est faite sur le pseudo et non sur un ID (faudra que je corrige ça, c'est pas moi qui ai fait ça à la base).
Donc si je faisais une table temporaire comme Joce en parlait, ça serait mieux j'imagine ?
Pour cette table-là je vois plus ou moins comment je pourrais faire des numéros de message (il suffirait de faire un select pour voir le max avant vu que le tri est inverse).
Par contre pour les pages qui affichent les listes de véhicules, je ne vois pas comment je pourrais virer les LIMIT :??: Si je prends tous les record où vehicle_make = 'Renault' AND vehicle_model like 'Mégane%' + un LIMIT, je vois pas trop comment optimiser :/ (je sais, c'est pas un forum, mais comme y a des commentaires sur chaque page ça s'en rapproche un peu :whistle:)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°1348866
belgique
Posté le 18-04-2006 à 15:24:30  profilanswer
 

antp a écrit :

Avec vos histoires je suis en train de me demander comment je pourrais arranger les requêtes sur imcdb.org (note : à la base c'est pas moi qui ai fait le truc, même si j'ai en fin de compte j'ai quasi tout refait petit à petit).

 

Pour le moment une des grosses pages fort utilisée est celle qui affiche les derniers commentaires postés sur les différentes fiches. Donc je fais un tri en inverse sur l'ID (pour afficher les derniers d'abord), avec un LIMIT pour la découpe en page, et un SQL_CALC_FOUND_ROWS pour savoir combien y aurait eu de résultats au total.
J'imagine que c'est très mal  :D  
D'autant plus que la jointure avec la table "users" est faite sur le pseudo et non sur un ID (faudra que je corrige ça, c'est pas moi qui ai fait ça à la base).
Donc si je faisais une table temporaire comme Joce en parlait, ça serait mieux j'imagine ?
Pour cette table-là je vois plus ou moins comment je pourrais faire des numéros de message (il suffirait de faire un select pour voir le max avant vu que le tri est inverse).
Par contre pour les pages qui affichent les listes de véhicules, je ne vois pas comment je pourrais virer les LIMIT  :??:  Si je prends tous les record où vehicle_make = 'Renault' AND vehicle_model like 'Mégane%' + un LIMIT, je vois pas trop comment optimiser  :/  (je sais, c'est pas un forum, mais comme y a des commentaires sur chaque page ça s'en rapproche un peu  :whistle: )


Tout dépend de la taille potentielle des requêtes retournées et du nombres de données que tu vas afficher. Déjà si la plupart du temps ta requête est du type LIMIT 0,x c'est pas super intéressant.

n°1348932
antp
Champion des excuses bidons
Posté le 18-04-2006 à 15:57:28  profilanswer
 

Ouais dans la majorité des cas ça commence à 0 pour les commentaires (où il y a énormément d'enregistrements), vu qu'on consulte surtout la 1e page. Et pour les autres pages, il y a pas tant de données ni même d'enregistrement en fin de compte...
Je vais quand même rajouter le temps de génération des pages, juste pour voir :D


Message édité par antp le 18-04-2006 à 15:58:04

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°1350158
nraynaud
lol
Posté le 20-04-2006 à 00:35:54  profilanswer
 

'tain, je crois que j'ai une idée pas mal et assez trenscendante, fait chier de pas pouvoir tester tout de suite !

n°1350164
belgique
Posté le 20-04-2006 à 00:53:24  profilanswer
 

En connaissant un peu les trucs à ne pas faire, il n'y pas spécialement besoin de tester parfois.  
 
Je fais pas de forums mais le problème de limit dans le cas de pagination m'intéresse un peu pour le fun. J'ai jamais trouvé de solutions sans limit pour le régler. Tout juste je peux limiter la taille maxi du limit à effectuer :D

n°1350478
soulmanto
Chat Noir replica
Posté le 20-04-2006 à 14:25:01  profilanswer
 

Petite question concernant l'URL rewriting... L'intérêt des URLs type www.monforum.com/cat-xx.htm est assez limité. Comment faites vous pour avoir le résultat suivant: www.monforum.com/section-trucbidule.htm directement à partir du nom d'un topic, d'une catégorie ou autre?

n°1350485
antp
Champion des excuses bidons
Posté le 20-04-2006 à 14:34:23  profilanswer
 

Pour HFR, il y a pour chaque section un champ texte (contenant "trucbidule" dans ton cas) en plus du nom de la catégorie et de son ID qui permet - je suppose - de faire la traduction dans les deux sens.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°1350509
masklinn
í dag viðrar vel til loftárása
Posté le 20-04-2006 à 14:46:44  profilanswer
 

Apache mod_rewrite, entre autres.


---------------
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°1350545
anthomicro
Posté le 20-04-2006 à 15:22:11  profilanswer
 

Salut à tous :-)
 
Je viens de mettre encore à jour mon forum, avec, comme pour HFR, en plus des "onglets" permettant de réunir les drapeaux, bah j'ai rajouté les drapeaux quand on liste un topic (directement à côté, avec l'icône favori qui prend la priorité itou itou) ^^
 
Voilà, il fait beau mais j'ai dit à mon cousin que j'allais le chercher en fin d'après midi, donc je code un peu en attendant :D

n°1351421
antp
Champion des excuses bidons
Posté le 21-04-2006 à 17:06:24  profilanswer
 

joce a écrit :

Ba  
 
CREATE TEMPORARY TABLE pouet SELECT numreponse FROM threadhardwarefr13 WHERE numeropost='11183' ORDER BY numreponse LIMIT 561000,30;
SELECT * FROM pouet LEFT JOIN threadhardwarefr13 USING (numreponse) ORDER BY numreponse ASC;
 
=> 0.57s + 0.01s
 
rulez :D


 
En local ça m'a bien réduit mon temps de génération... puis lors du test chez OVH :

Citation :

Table 'imcdb.pouet' doesn't exist


[:tinostar]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°1351432
chaced
Posté le 21-04-2006 à 17:14:44  profilanswer
 

Mysql 3.23 ?


---------------
CPU-Z | Timespy | Mes bd | Mon blog
n°1351442
antp
Champion des excuses bidons
Posté le 21-04-2006 à 17:23:01  profilanswer
 

Non, 4.0 (contre 4.1 en local)
Par contre ils ne donnent peut-être pas le droit de créer ces tables temporaires ?


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°1351461
e-deby
Posté le 21-04-2006 à 17:41:24  profilanswer
 

antp a écrit :

Pour HFR, il y a pour chaque section un champ texte (contenant "trucbidule" dans ton cas) en plus du nom de la catégorie et de son ID qui permet - je suppose - de faire la traduction dans les deux sens.


 
chez moi les catégories peuvent etre identifiées par une chaine de caracteres, d'ou son apparition dans le rewrite

n°1351484
masklinn
í dag viðrar vel til loftárása
Posté le 21-04-2006 à 18:07:01  profilanswer
 

antp a écrit :

Pour HFR, il y a pour chaque section un champ texte (contenant "trucbidule" dans ton cas) en plus du nom de la catégorie et de son ID qui permet - je suppose - de faire la traduction dans les deux sens.


On peut indexer directement sur ce champ pour s'en servir à la place d'un id numérique aussi, si on utilise uniquement du pretty print (des jolies URL quoi) le numéro d'ID de la cat ne sert pas à grand chose :o

e-deby a écrit :

chez moi les catégories peuvent etre identifiées par une chaine de caracteres, d'ou son apparition dans le rewrite


C'est exactement ce dont il parlait.


---------------
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°1351486
omega2
Posté le 21-04-2006 à 18:09:42  profilanswer
 

masklinn a écrit :

On peut indexer directement sur ce champ pour s'en servir à la place d'un id numérique aussi, si on utilise uniquement du pretty print (des jolies URL quoi) le numéro d'ID de la cat ne sert pas à grand chose :o

Il me semble que même indexé, la recherche sur une colone de texte sera plus lente que la recherche équivalente sur une colone numérique.

n°1351502
antp
Champion des excuses bidons
Posté le 21-04-2006 à 18:21:04  profilanswer
 

Tiens au passage ça m'arrangerait d'avoir la réponse à cette question avant que je me fasse chier à remplacer les jointures sur les pseudos d'utilisateurs par des jointures sur les ID d'utilisateurs :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°1351503
xman
branleur
Posté le 21-04-2006 à 18:21:12  profilanswer
 

Et si on tape que des caractères étrangers (japonais par exemple) dans un titre, ça risque pas de poser problème pour la conversion en URL ?
Genre ça 検索オプション (texte copié sur Yahoo Japan, me demandez pas ce que ça signifie même si c'est probablement "recherche avancée" )
 
Pour l'indexation sur du texte, je pense en effet que ça doit être plus lent que sur du numérique.

n°1351505
nraynaud
lol
Posté le 21-04-2006 à 18:21:48  profilanswer
 

url-> utf-8


---------------
trainoo.com, c'est fini
n°1351508
xman
branleur
Posté le 21-04-2006 à 18:24:37  profilanswer
 

Tiens, je viens de trouver un bug. :D
 
guillemets + parenthèse fermante (ou plus exactement n'importe quoi réécrit en &xxxx; suivi de parenthèse fermante) est interprété comme un ;)
 
PS : je suis content, ça le fait pas sur mon forum :o
EDIT : Merde, j'ai parlé trop vite, ça le fait sauf pour les guillemets chez moi [:tinostar] Ca va être chiant (et lourd) à éviter.

Message cité 1 fois
Message édité par xman le 21-04-2006 à 18:30:12
n°1351513
antp
Champion des excuses bidons
Posté le 21-04-2006 à 18:30:05  profilanswer
 

Ça fait longtemps qu'il est là ce bug :o


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°1351517
masklinn
í dag viðrar vel til loftárása
Posté le 21-04-2006 à 18:33:06  profilanswer
 

omega2 a écrit :

Il me semble que même indexé, la recherche sur une colone de texte sera plus lente que la recherche équivalente sur une colone numérique.


C'est plus que probable, mais la question n'est pas de savoir si c'est plus lent mais si c'est suffisament rapide.

xman a écrit :

Tiens, je viens de trouver un bug. :D
 
guillemets + parenthèse fermante (ou plus exactement n'importe quoi réécrit en &xxxx; suivi de parenthèse fermante) est interprété comme un ;)
 
PS : je suis content, ça le fait pas sur mon forum :o
EDIT : Merde, j'ai parlé trop vite, ça le fait sauf pour les guillemets chez moi [:tinostar] Ca va être chiant (et lourd) à éviter.


[:debarquement]


---------------
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°1351519
Max Evans
Posté le 21-04-2006 à 18:36:39  profilanswer
 

Pour les catégories, il n'y en a pas des millions, donc ça ne devrait pas poser trop de problèmes :D


---------------
Envie d'un bol d'air ? Traxxas Revo 3.3
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  350  351  352  ..  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)