#оптимизация #mysql
Доброго времени суток. Помогите, пожалуйста, с оптимизацией запроса: SELECT * , b.`id` AS bid, u.`id` AS uid, cd.`open_n` , cd.`close_n` FROM `bills` AS b LEFT JOIN `users` u ON u.`id` = b.`author` LEFT JOIN `close_docs` cd ON cd.`bill_id` = b.`id` WHERE b.`check` != "0000-00-00 00:00:00" LIMIT 1303 , 30 EXPLAIN EXTENDED выдает: В close_docs не всегда есть строки, соответствующие b.id. В bills и close_docs около 3500 записей, запрос выполняется около 25 секунд. Заранее спасибо.
Ответы
Ответ 1
Попробуйте так Select *, b.`id` AS bid, u.`id` AS uid, cd.`open_n` , cd.`close_n` from `bills` as b, `users` as u, `close_docs` as cd Where b.`check`!= "0000-00-00 00:00:00" and u.`id`=b.`autor` and cd.`bill_id` = b.`id` Создайте внешний ключ на cd.bill_id = b.id, это ускорит.
Комментариев нет:
Отправить комментарий