Немецкая локаль? Я удивился
Сколько циклов проверяли? Результаты в рамках погрешности измерения.
Разница inner и left join в поведении, запросы не эквивалентны. По части производительности в mysql - left join выполняется строго в одном порядке. (right join, к слову, mysql делать не умеет, переписывает в left), тогда как для inner планировщик может свободно изменять порядок объединения и использовать другие варианты индексов.
Старомодная запись через from t1, t2 - всё так же inner join. Обе записи планировщик переписывает в идентичное представление.
in (subquery) штука повеселее. В старых версиях была бага и такой запрос был отвратителен по производительности, сейчас подкрутили. Емнип, тоже может быть переписан планировщиком в inner join, а может и так выполняться. По усмотрению планировщика.
Универсально можно сказать только то, что не надо делать left join, если не нужно именно его поведение. В остальных случаях бывают сюрпризы из-за реального распределения данных.
|