Учтите, что в таблице отгрузки и заказа есть 2M записей.
SELECT DISTINCT
s0_.id AS id0,
s0_.updated_at AS updated_at1
FROM
`shipment` s0_
LEFT JOIN `order` s1_ ON s0_.order_id = s1_.id -- These line
LEFT JOIN `address` s2_ ON s1_.shipping_address_id = s2_.id -- These line
ORDER BY s0_.updated_at DESC
LIMIT 20 OFFSET 0
Если я удалю левое соединение, MariaDB будет использовать указанный индекс, почему?Есть ли решение?
Этот SQL генерируется библиотекой, и у меня ограниченные возможности для его исправления.
Этот SQL генерируется библиотекой, и у меня ограниченные возможности дляисправить это.
Этот SQL генерируется библиотекой, и у меня ограниченные возможности для его исправления.
Этот SQL генерируется библиотекойи у меня ограниченные возможности для его исправления.
Этот SQL генерируется библиотекой, и у меня ограниченные возможности для его исправления.
Не спрашиватьмне убрать это.Я знаю, что это бесполезно.И я думаю, что оптимизатор запросов должен думать так же, поскольку он просто LEFT JOIN.
Я использую MariaDB 10.1