Есть таблица: Код (PHP): -- Структура таблицы `work` CREATE TABLE IF NOT EXISTS `work` ( `id` int(11) NOT NULL, `first_name` int(11) DEFAULT NULL, `last_name` int(11) DEFAULT NULL, `bdate` date DEFAULT NULL, `day` tinyint(2) NOT NULL, `month` tinyint(2) NOT NULL, `year` int(5) NOT NULL, `country` int(11) DEFAULT NULL, `city` int(11) DEFAULT NULL, `data` longtext, `pr` tinyint(1) NOT NULL, PRIMARY KEY (`id`), KEY `bdate` (`bdate`), KEY `pr` (`pr`), KEY `day` (`day`), KEY `month` (`month`), KEY `year` (`year`), KEY `first_name` (`first_name`), KEY `last_name` (`last_name`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; В таблице 10 миллионов записей. Делаю выборку исключительно по цифровым полям, которые проиндексированы: SELECT id FROM work where first_name = '11' AND last_name = '22' AND day = '5' AND month = '10' AND year = '2001'" В результате по времени такой запрос работает так: Поиск записи: 3 sec. Поиск записи: 0 sec. Поиск записи: 1 sec. Поиск записи: 0 sec. Поиск записи: 28 sec. Поиск записи: 3 sec. Поиск записи: 112 sec. Поиск записи: 1 sec. Поиск записи: 2 sec. Поиск записи: 0 sec. Поиск записи: 34 sec. Поиск записи: 11 sec. Соответственно поиск 1000 записей занимает несколько часов! Никаких update и delete параллельно не ведётся. При этом mysql совсем не занимает процессор – меньше 1%!!! Mysql установлена на локальной машине WIN 7. Вопросы: 1. Что я сделал не так, почему так долго проходит поиск, почему такой разброс по времени и что делать? 2. Почему совсем не занят процессор, как заставить mysql пользоваться для поиска всеми ресурсами ПК?
day month year сделать одним типом DATE first_name, last_name, число <- и по этому сделать составной индекс