У меня следующая проблема.Мой запрос выполняется в течение 0,0002 секунд, когда есть записи, которые соответствуют записям, и 0,0367, когда их нет.
CREATE TABLE IF NOT EXISTS `main_pages_options` (
`page_id` int(11) NOT NULL,
`value` varchar(255) NOT NULL,
`option_id` int(11) NOT NULL,
UNIQUE KEY `page_id` (`page_id`,`option_id`),
FULLTEXT KEY `value` (`value`)
) ENGINE=MyISAM ;
SELECT page_id
FROM main_pages_options
WHERE (option_id = 1 AND value = 'Test 1')
OR (option_id = 2 AND value = 'Test 2')
OR (option_id = 3 AND value = 'Test 3')
GROUP BY page_id
HAVING COUNT(*) = 3
SELECT page_id
FROM main_pages_options
WHERE (option_id = 1 AND value = 'Test 7')
OR (option_id = 2 AND value = 'Test 2')
OR (option_id = 3 AND value = 'Test 3')
GROUP BY page_id
HAVING COUNT(*) = 3
У меня ~ 80 000 записей в main_pages_options и ~ 20 000 записей в main_pages.