Мне нужно выбрать пары строк из таблицы, соответствующей определенным критериям.
Вот SQL скрипку, которая демонстрирует то, что я хочу:Оптимизация запроса на самостоятельное соединение MySQL
http://sqlfiddle.com/#!2/4fc2f/16/0
Это хорошо работает, когда таблица мала - но проблема в том, моя таблица производства может иметь миллионы строк и тысячи строк для конкретного Дата. Запрос занимает 14-15 секунд для выполнения конкретной даты. Как я могу улучшить его?
MySQL 5.5
У вас есть индексы на месте? Сделайте 'show create table'. BTW 14 секунд для запроса, который обращается к миллионам строк, не * that * bad – Jim
Да, индексы во всех столбцах, показанных здесь (в таблице больше столбцов, но я упрощаю). Прямой выбор для конкретной даты, кажется, происходит почти мгновенно (<секунда). Кажется, что самосоединение - это то, что дорого, но похоже, что он должен быть в состоянии сузить до даты (несколько тысяч строк), а затем сделать соединение? – scotru