У меня есть запрос «много-ко-многим», который я хотел бы оптимизировать, Какие индексы я должен создать для него?sql оптимизация индексов запросов много-ко многим
SELECT (SELECT COUNT(post_id)
FROM posts
WHERE post_status = 1) as total,
p.*,
GROUP_CONCAT(t.tag_name) tagged
FROM tags_relation tr
JOIN posts p ON p.post_id = tr.rel_post_id
JOIN tags t ON t.tag_id = tr.rel_tag_id
WHERE p.post_status=1
GROUP BY p.post_id
EXPLAIN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY p ALL PRIMARY NULL NULL NULL 5 Using where; Using filesort
+1: Довольно много проб и ошибок, и это зависит от данных, и как это получить доступ ... –
вот результат PRIMARY, post_status \t \t post_status 1 \t \t Const 4 \t Используя где; Использование filesort – dsportesa
Теперь ваш запрос имеет post_status в качестве ключа, в отличие от предыдущего плана выполнения, который был NULL. –