Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
оптимизация fulltext поиска (sord) 21/07/2006 - 02:22:07



From: sord - 21/07/2006 - 02:22:07
Subject:оптимизация fulltext поиска
-----------------
Просьба помочь с оптимизацией. Запрос на таблицах, в каждой из которых по миллиону записей выполняется 2-12 сек. Необходимо уменьшить это время до < 1 сек. Спасибо.

mysql 4.0.22

SELECT DISTINCT
(table.tid) AS tid ,
(MATCH(table.name) AGAINST ('word')
+MATCH(table.descr) AGAINST ('word')
+MATCH(table.owner) AGAINST('word')) AS relevance
FROM table, price
WHERE price.tid=table.tid
AND price.quantity=1
AND price.vid = 0
AND (MATCH(table.name) AGAINST ('word')
OR MATCH(table.descr) AGAINST ('word')
OR MATCH(table.owner) AGAINST('word'))
AND table.exists='Y'
GROUP BY table.tid
ORDER BY relevance DESC, table.avail DESC
limit 150

CREATE TABLE `price` (
`pid` int(11) NOT NULL auto_increment,
`tid` int(11) NOT NULL default '0',
`quantity` int(11) NOT NULL default '0',
`vid` int(11) NOT NULL default '0',
PRIMARY KEY (`pid`),
UNIQUE KEY `tid` (`tid`,`vid`),
KEY `vid` (`vid`),
KEY `tvq` (`tid`,`vid`,`quantity`),
) TYPE=MyISAM;

CREATE TABLE `table` (
`tid` int(11) NOT NULL auto_increment,
`name` varchar(255) NOT NULL default '',
`descr` text NOT NULL,
`avail` int(11) NOT NULL default '0',
`exists` char(1) NOT NULL default 'Y',
`owner` varchar(255) NOT NULL default '',
PRIMARY KEY (`tid`),
KEY `name` (`name`),
KEY `avail` (`avail`),
KEY `et` (`exists`,`tid`),
KEY `eta` (`exists`,`tid`,`avail`),
KEY `owner` (`owner`),
FULLTEXT KEY `ft_name` (`name`),
FULLTEXT KEY `ft_descr` (`descr`),
FULLTEXT KEY `ft_owner` (`owner`)
) TYPE=MyISAM;


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
29213



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |