/ / mysql запит займає більше 1 дня - mysql, продуктивність, запит-продуктивність

Запит mysql займає більше 1 дня - mysql, performance, query-performance

запит mysql займає більше 1 дня, як його пришвидшити:

update posts set  category_id = (
SELECT keyword_id
FROM post_keywords
where  keyword_id IN (
SELECT  keyword_id
FROM post_keywords
where  id_post = posts.id_post)
group by keyword_id
order by count(keyword_id) DESC
limit 0,1
);

будь-яке рішення?

Відповіді:

2 для відповіді № 1

Це не зовсім одне і те ж, але результат все одно буде таким, яким ти хочеш, я думаю. Мені в основному цікаво, як (ЯКЩО !?) це може вплинути на ефективність.

UPDATE posts
SET category_id = (
SELECT pkw.keyword_id
FROM post_keywords pkw
JOIN (
SELECT keyword_id, cnt = COUNT(*)
FROM post_keywords
GROUP BY keyword_id ) cnts
ON cnts.keyword_id = pkw.keyword_id
WHERE pkw.id_post = posts.id_post
ORDER BY cnt DESC
LIMIT 0,1

)