Bonjour,
J'ai de très grosses tables search_wordmatch et search_wordlist c'est pourquoi je cherche la meilleure solution pour effectuer cette requete :
Elle met 13 secondes à s'exécuter sur mon dédié.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 SELECT m.word_id FROM phpbb_search_wordmatch m, phpbb_search_wordlist w WHERE w.forumid = 5021 AND w.word_text IN ('ardente', 'bref', 'cause', 'cest', 'effectivement', 'euh', 'inspirant', 'plus', 'très', 'une', 'vivifiante') AND m.forumid = w.forumid AND m.word_id = w.word_id GROUP BY m.word_id HAVING COUNT(m.word_id) > 1636;
Description des tables :
phpbb_search_wordlist
1 240 649 enregistrements MyISAM latin1_swedish_ci 68,9 Mo
phpbb_search_wordmatch 4 159 965 enregistrements MyISAM latin1_swedish_ci 152 Mo
Avez vous une solution pour ce type de requetes ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 CREATE TABLE `phpbb_search_wordlist` ( `word_text` varchar(50) character set latin1 collate latin1_bin NOT NULL default '', `word_id` mediumint(8) unsigned NOT NULL auto_increment, `word_common` tinyint(1) unsigned NOT NULL default '0', `forumid` int(9) NOT NULL default '0', PRIMARY KEY (`word_text`,`forumid`,`word_id`), KEY `word_id` (`word_id`), KEY `forumid` (`forumid`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=211837 ; CREATE TABLE `phpbb_search_wordmatch` ( `post_id` mediumint(8) unsigned NOT NULL default '0', `word_id` mediumint(8) unsigned NOT NULL default '0', `title_match` tinyint(1) NOT NULL default '0', `forumid` int(9) NOT NULL default '0', KEY `post_id` (`post_id`), KEY `word_id` (`word_id`), KEY `forumid` (`forumid`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Merci![]()
Partager