У меня есть запрос, который занимает много времени, и мне было интересно, есть ли лучший способ сделать это? Возможно, с присоединениями?Уточнение этого запроса MySQL?
В настоящее время занимает ~ 2,5 секунды, что слишком долго.
Чтобы немного объяснить структуру: у меня есть продукты, «темы» и «категории». Продукту может быть присвоено любое количество тем или категорий. Таблицы themeitems и categoryitems связывают таблицы, чтобы связать идентификатор категории/темы с идентификатором продукта.
Я хочу получить список всех продуктов с хотя бы одной темой и категорией. Запрос я получил на данный момент ниже:
SELECT *
FROM themes t, themeitems ti, products p, catitems ci, categories c
WHERE t.ID = ti.THEMEID
AND ti.PRODID = p.ID
AND p.ID = ci.PRODID
AND ci.CATID = c.ID
Я только на самом деле выбор строку мне нужно при выполнении запроса, но я что абстрагироваться немного удален.
Любая помощь в правильном направлении будет замечательной!
Edit: EXPLAIN ниже
Можете ли вы разместить ЭКСПЛАЙН? –
Да, редактируемый вопрос. – Michael
Сколько строк возвращается? – zerkms