запит 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
)