Authentifiez-vous pour accéder à toutes les fonctionnalités
Connectez-vous avec votre compte existant ou inscrivez-vous pour découvrir notre communauté
Tout ce qui concerne le fonctionnement du site et des forums
whinpo, au vue de la requête ça ne m'étonnes pas du tout que ça rame, c'est super violent comme requête

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)
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]



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)
Code Tout sélectionner
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;
[Édite le 23-9-2010 par Mascotte]
Membre


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![]()
![]()
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)
Code Tout sélectionnerSELECT 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;



Message original : steph42360
ptain j'étais en train d'écrire la même chose![]()
![]()
![]()

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![]()



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



[Édite le 23-9-2010 par Mascotte]
[Édite le 23-9-2010 par Mascotte]
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![]()
![]()
![]()
J'aime beaucoup !

Pattes de support rabaissées à filetage réglable, ventilo inox avec filtre sport et optimisation RSO pour compléter ta config

Message original : tingail s'agit peut etre effectivement d'une piste mais tout dépend alors de ne pas trop avoir de noeuds à gererMessage original : difparis
Je te parle de solution avec un SGBD multi-instances réparti sur plusieurs noeuds..

[Édite le 23-9-2010 par difparis]
Message original : steph42360ptain j'étais en train d'écrire la même choseMessage 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![]()
![]()
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)
Code Tout sélectionnerSELECT 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;
![]()
![]()
![]()


j'en étais qu'au SELECT moi....
Membre cotisant
n°1406




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à...
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à...
Message original : difparisUn juste équilibre en scale up et scale outMessage original : tingail s'agit peut etre effectivement d'une piste mais tout dépend alors de ne pas trop avoir de noeuds à gererMessage original : difparis
Je te parle de solution avec un SGBD multi-instances réparti sur plusieurs noeuds..![]()
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


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