Club911

Depuis 24 ans le Club911.Net partage sa passion pour la marque Porsche, se renouvelant sans arrêt pour proposer du contenu, des évènements touristiques comme sur circuits en France et en Belgique

https://club911.net/

Titre du sujet - erreurs connection base de données => changement de serveur

https://club911.net/viewtopic.php?t=102255

Page 11 sur 16
- par Mascotte
Posté : 23 sept. 2010, 20:48
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]
- par steph42360
Posté : 23 sept. 2010, 20:51
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
- par chris-91
Posté : 23 sept. 2010, 20:57
les citations fonctionnent pas bien ?
- par Mascotte
Posté : 23 sept. 2010, 21:20
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]
- par tinga
Posté : 23 sept. 2010, 21:25
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
- par LOOI911
Posté : 23 sept. 2010, 21:27
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 ;)
- par difparis
Posté : 23 sept. 2010, 21:31
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]
- par excelsior
Posté : 23 sept. 2010, 21:33
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....
- par gentleman69
Posté : 23 sept. 2010, 21:33
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à...
- par tinga
Posté : 23 sept. 2010, 21:35
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]
Heures au format UTC+02:00
Page 11 sur 16
Développé par phpBB® Forum Software © phpBB Limited
Traduit par phpBB-fr.com