Привет всем. Подскажите пожалуйста, как сделать быстрый релевантный поиск по таблице с большим количеством строк. Есть таблица:
CREATE TABLE `sale` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`brand` varchar(255) DEFAULT NULL,
`gname` varchar(255) DEFAULT NULL,
`sku` varchar(255) DEFAULT NULL,
`price` varchar(255) DEFAULT NULL,
`description` text,
`tagdescription` varchar(255) DEFAULT NULL,
`tagtitle` varchar(255) DEFAULT NULL,
`tagkeywords` varchar(255) DEFAULT NULL,
`adddate` datetime DEFAULT NULL,
`image` varchar(255) DEFAULT NULL,
`photos` text,
`url` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `url` (`url`) USING BTREE,
FULLTEXT KEY `brand` (`brand`),
FULLTEXT KEY `sku` (`sku`),
FULLTEXT KEY `description` (`description`),
FULLTEXT KEY `tagdescription` (`tagdescription`),
FULLTEXT KEY `tagtitle` (`tagtitle`),
FULLTEXT KEY `tagkeywords` (`tagkeywords`),
FULLTEXT KEY `price` (`price`),
FULLTEXT KEY `gname` (`gname`)
) ENGINE=MyISAM AUTO_INCREMENT=1734271 DEFAULT CHARSET=utf8;
Делаю в ней поиск на php таким образом:
$result = mysql_query("SELECT *, MATCH brand AGAINST ('".$_GET['q']."') + MATCH gname AGAINST ('".$_GET['q']."') + MATCH description AGAINST ('".$_GET['q']."') + MATCH tagdescription AGAINST ('".$_GET['q']."') as relev FROM sale HAVING relev>0 ORDER BY relev DESC");
При количестве записей 1 734 271, поиск выполняется за 4.1535229682922 сек., что очень долго. Как сделать быстро?)