Titre du sujet : Re: Spammeurs viennent sur FrXoops par Ghia sur 09/08/2010 02:36:32
Le premier n'a rien avoir avec la recherche. Optimalisation est par exemple:
SELECT p.*, t.* FROM bb_posts AS p LEFT JOIN bb_posts_text AS t ON t.post_id
= p.post_id
WHERE p.post_time < 2000000000 having (p.forum_id IN (48,49,40,43,15,38,44,52,5,12,10,27,34,14,47,45,39) AND
p.approved = '1') ORDER BY p.post_time DESC LIMIT 156650, 10
Le deux tables bb_posts et bb_posts_text sera mieux une seule, car chaque post a une titre et une texte. La requête se réduit à:
SELECT * FROM bb_posts
WHERE post_time < 2000000000 having (forum_id IN (48,49,40,43,15,38,44,52,5,12,10,27,34,14,47,45,39) AND
approved = '1') ORDER BY post_time DESC LIMIT 156650, 10
Pour le deuxième:
SELECT p.uid,p.forum_id, p.topic_id, p.poster_name, p.post_time, f.forum_name, p.post_id,
p.subject, p.approved FROM bb_posts AS p LEFT JOIN bb_posts_text AS pt ON pt.post_id
= p.post_id LEFT JOIN bb_forums f ON p.forum_id =
f.forum_id
WHERE p.post_time < 2000000000 and (p.subject LIKE '%newbb%' OR pt.post_text LIKE '%newbb%') having (p.forum_id IN (48,49,40,43,15,38,44,52,5,12,10,27,34,14,47,45,39) AND
p.approved = '1') ORDER BY p.post_time DESC LIMIT 10, 10
Il faut aussi prendre précaution vers ce rapports d’hébergeurs, parce-qu'ils sont pris sur une système multi-site, ou plusieurs effets se joue dans le temps d'une requête. Les requêtes indiquées ne sont pas toujours les problématiques. Pour une estimation plus juste il faut une copie du système ou seulement ce requête est exécutée.
|