Мы заметили, что при объединении таблицы с многоколоночным PK к себе:
- объединение с использованием всех столбцов PK выполнялось в .5s
- объединение с использованием всех столбцов PK, кроме одного, выполнялось за 42-44 с
Другая, может быть посторонняя информация:
- все столбцы PK имелиbtree indexes
- столбец, который мы оставили во втором случае, был
BOOLEAN
(на самом деле tinyint(1)
) - поэтому набор результатов был в два раза больше, чем в первом случае - thisнаблюдалось как для
inner join
, так и для left join
- в соединениях не использовались столбцы не-PK
- многократный запуск запроса не привел к значительному сокращению времени выполнения (возможно, на 2 с)
Почему разница во времени исполнения была такой большой?