Authentifiez-vous pour accéder à toutes les fonctionnalités
Connectez-vous avec votre compte existant ou inscrivez-vous pour découvrir notre communauté
Répondre
153 messages
1 ... 9 10 11 12 13 ... 16
Tout ce qui concerne le fonctionnement du site et des forums
Membre
Logo Logo
Messages : 6038
Enregistré le : 13 juin 2010, 17:37

Message Envoyé
whinpo, au vue de la requête ça ne m'étonnes pas du tout que ça rame, c'est super violent comme requête :o :o :o

Grosso modo, sélectionner l'ensemble des posts dans tous les sous-forums non "protégés" (administratif, club, hors-sujets), pour _seulement ensuite_ les trier par date et ne garder que les 15 premiers, ça ne doit pas l'aider, que fid et le timestamp de post soit indexés ou non.

Une autre solution possible serait peut-être de sous-requêter ta table (une première pour récupérer les X threads dernièrement updatée, puis filtrage sur les forums id), qu'en penses-tu?
Je pensais à un truc du genre (à la syntaxe près, ou l'optim sur le filtrage des N premiers)
SELECT tid, subject, icon FROM
(select tid, subject, icon from forum911net_threads ORDER BY lastpost DESC LIMIT 0, 50)
WHERE fid  71 AND fid  53 AND (fid < 110 OR fid > 128) AND fid  132 AND fid  136 AND fid IN(1,2,3,4,5,6,7,8,12,11,13,51,18,16,33,23,24,25,26,27,28,29,30,31,32,35,38,41,63,42,40,49,45,44,46,47,48,50,58,66,69,74,88,133,141,139,142) ORDER BY lastpost DESC LIMIT 0, 15;
Autre question/voie à tester serait les champs fid: le "IN" et les autres tests semblent redondants à première lecture. Est-ce une optimisation? L'index ne va pas pouvoir fonctionner "à plein", si?

[Édite le 23-9-2010 par Mascotte]
Membre
Logo Logo
Messages : 18928
Enregistré le : 01 nov. 2006, 16:58

Message Envoyé
Message original : Mascotte
whinpo, au vue de la requête ça ne m'étonnes pas du tout que ça rame, c'est super violent comme requête :o :o :o

Grosso modo, sélectionner l'ensemble des posts dans tous les sous-forums non "protégés" (administratif, club, hors-sujets), pour _seulement ensuite_ les trier par date et ne garder que les 15 premiers, ça ne doit pas l'aider, que fid et le timestamp de post soit indexés ou non.

Une autre solution possible serait peut-être de sous-requêter ta table (une première pour récupérer les X threads dernièrement updatée, puis filtrage sur les forums id), qu'en penses-tu?
Je pensais à un truc du genre (à la syntaxe près, ou l'optim sur le filtrage des N premiers)
SELECT tid, subject, icon FROM
(select tid, subject, icon from forum911net_threads ORDER BY lastpost DESC LIMIT 0, 50)
WHERE fid  71 AND fid  53 AND (fid < 110 OR fid > 128) AND fid  132 AND fid  136 AND fid IN(1,2,3,4,5,6,7,8,12,11,13,51,18,16,33,23,24,25,26,27,28,29,30,31,32,35,38,41,63,42,40,49,45,44,46,47,48,50,58,66,69,74,88,133,141,139,142) ORDER BY lastpost DESC LIMIT 0, 15;
ptain j'étais en train d'écrire la même chose :cool: :D :D
Membre
Logo Logo
Messages : 16104
Enregistré le : 25 avr. 2006, 09:50

Message Envoyé
les citations fonctionnent pas bien ?
Membre
Logo Logo
Messages : 6038
Enregistré le : 13 juin 2010, 17:37

Message Envoyé
Message original : steph42360

ptain j'étais en train d'écrire la même chose :cool: :D :D
:thumbup:
Message original : difparis
Mais qui te parle de matos!
Je te parle de solution avec un SGBD multi-instances réparti sur plusieurs noeuds...mais t'as raison il faut des experts ;)
Plusieurs instances "slaves" pour la lecture, une master pour l'écriture et zou! :P :P Ca marche bien pour facebook, alors... :D



[size=-2]Private joke: et puis la marge est meilleure sur le soft, faut pas parler matos :D :D :D[/size]

[Édite le 23-9-2010 par Mascotte]

[Édite le 23-9-2010 par Mascotte]
Membre
Logo Logo
Messages : 7190
Enregistré le : 02 févr. 2007, 11:38

Message Envoyé
Message original : difparis
Je te parle de solution avec un SGBD multi-instances réparti sur plusieurs noeuds..
il s'agit peut etre effectivement d'une piste mais tout dépend alors de ne pas trop avoir de noeuds à gerer
Membre
Logo Logo
Messages : 25834
Enregistré le : 07 janv. 2010, 00:02

Message Envoyé
Message original : Julien
Peut être qu'avec un intérieur vidé et un arceau dans le serveur, ça permettrai d'alléger la base de donnée et de renforcer le serveur :exclamation: :question: :cool:

J'aime beaucoup ! :D

Pattes de support rabaissées à filetage réglable, ventilo inox avec filtre sport et optimisation RSO pour compléter ta config ;)
Membre
Logo Logo
Messages : 26175
Enregistré le : 09 juin 2008, 11:53

Message Envoyé
Message original : tinga
Message original : difparis
Je te parle de solution avec un SGBD multi-instances réparti sur plusieurs noeuds..
il s'agit peut etre effectivement d'une piste mais tout dépend alors de ne pas trop avoir de noeuds à gerer
Un juste équilibre entre scale up et scale out ;)

[Édite le 23-9-2010 par difparis]
Membre
Logo Logo
Messages : 1759
Enregistré le : 15 mars 2009, 16:43

Message Envoyé
Message original : steph42360
Message original : Mascotte
whinpo, au vue de la requête ça ne m'étonnes pas du tout que ça rame, c'est super violent comme requête :o :o :o

Grosso modo, sélectionner l'ensemble des posts dans tous les sous-forums non "protégés" (administratif, club, hors-sujets), pour _seulement ensuite_ les trier par date et ne garder que les 15 premiers, ça ne doit pas l'aider, que fid et le timestamp de post soit indexés ou non.

Une autre solution possible serait peut-être de sous-requêter ta table (une première pour récupérer les X threads dernièrement updatée, puis filtrage sur les forums id), qu'en penses-tu?
Je pensais à un truc du genre (à la syntaxe près, ou l'optim sur le filtrage des N premiers)
SELECT tid, subject, icon FROM
(select tid, subject, icon from forum911net_threads ORDER BY lastpost DESC LIMIT 0, 50)
WHERE fid  71 AND fid  53 AND (fid < 110 OR fid > 128) AND fid  132 AND fid  136 AND fid IN(1,2,3,4,5,6,7,8,12,11,13,51,18,16,33,23,24,25,26,27,28,29,30,31,32,35,38,41,63,42,40,49,45,44,46,47,48,50,58,66,69,74,88,133,141,139,142) ORDER BY lastpost DESC LIMIT 0, 15;
ptain j'étais en train d'écrire la même chose :cool: :D :D
:D :D
j'en étais qu'au SELECT moi....
Membre cotisant n°1406
Logo Logo Logo Logo
Messages : 19358
Enregistré le : 03 août 2005, 22:11

Message Envoyé
Si en virant des posts ta requête marche mieux c'est que tu fais des accès en lecture complète "table scans" sans accès par des index.

Une raison possible est un problème de type de données. Par exemple un char au lieu d'un number.
Quand tu fais char > 3 par exemple, il t'applique une fonction de conversion en number sur le char et du coup il te flingue l'usage de ton index...

L'autre raison ce sont des tables statistiques pas à jour. Je ne connais pas mySQL mais Oracle donc je ne peux pas t'aider sur ce coup là...
Membre
Logo Logo
Messages : 7190
Enregistré le : 02 févr. 2007, 11:38

Message Envoyé
Message original : difparis
Message original : tinga
Message original : difparis
Je te parle de solution avec un SGBD multi-instances réparti sur plusieurs noeuds..
il s'agit peut etre effectivement d'une piste mais tout dépend alors de ne pas trop avoir de noeuds à gerer
Un juste équilibre en scale up et scale out ;)
euh difparis ne le prends pal mal steuplait:)

mais en fait j'y connais rien du tout à vos trucs
je me suis dit qu'écrire n'importe quoi sur une de vos phrases aurait une chance sur 2 d'avoir un sens cohérent


un peu comme steph4256780875 mais en plus finaud
comme quoi

:D ;)

[Édite le 23-9-2010 par tinga]
Répondre
153 messages
1 ... 9 10 11 12 13 ... 16