I'm having a problem with FULLTEXT searches going much more slowly than I expect, and need. It seems that this is perfectly straightforward so I can't see why it's taking so long; other people on this list have been reporting almost instantaneous results from FULLTEXT searches.
I'm using MySQL 4.0.10 on FreeBSD 4.7, on a 1.4 GHz PIII with 1G RAM. It's a lightly loaded server most of the time. The table in question is: mysql> show create table q\G *************************** 1. row *************************** Table: q Create Table: CREATE TABLE `q` ( `id` int(10) unsigned NOT NULL default '0', `cit_id` int(10) unsigned NOT NULL default '0', `qt` text, `note` text, PRIMARY KEY (`id`), KEY `cit_id` (`cit_id`), FULLTEXT KEY `qt` (`qt`) ) TYPE=MyISAM 1 row in set (0.00 sec) There are about 2.3M rows in this table, and it takes up about 400M. I did shorten the ft_min_word_length to 2, since I need to search on short words. Here's a sample: mysql> SELECT COUNT(*) FROM q WHERE MATCH(qt) AGAINST ('computer'); +----------+ | COUNT(*) | +----------+ | 11892 | +----------+ 1 row in set (16.43 sec) Boolean searches are also slow: mysql> SELECT COUNT(*) FROM q WHERE MATCH(qt) -> AGAINST ('+"free love" -hippies' IN BOOLEAN MODE); +----------+ | COUNT(*) | +----------+ | 44 | +----------+ 1 row in set (1.71 sec) I don't get anything useful from EXPLAINs for searches like these: mysql> EXPLAIN SELECT COUNT(*) FROM q WHERE MATCH(qt) -> AGAINST ('+"free love" -hippies' IN BOOLEAN MODE)\G *************************** 1. row *************************** table: q type: fulltext possible_keys: qt key: qt key_len: 0 ref: rows: 1 Extra: Using where 1 row in set (0.00 sec) While a 1.7-second search may not be the end of the world, a 16-second search is getting closer to it, and this is just the simplest case. In practice, this would be an element of a larger search that's joining in a number of other tables, and with a number of concurrent users. Is there anything I can do to speed things up, or any explanation of why this is so slow? Thanks very much. Jesse Sheidlower --------------------------------------------------------------------- Before posting, please check: http://www.mysql.com/manual.php (the manual) http://lists.mysql.com/ (the list archive) To request this thread, e-mail <[EMAIL PROTECTED]> To unsubscribe, e-mail <[EMAIL PROTECTED]> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php