这对我来说感觉像是一个初学SQL问题,但是这里有.这就是我想要做的:
我已经描述了本文底部涉及的表格,但这是我正在执行的查询
SELECT p.*, GROUP_CONCAT(pt.name)
FROM products p
LEFT JOIN product_tags_for_products pt4p ON (pt4p.product_id = p.id)
LEFT JOIN product_tags pt ON (pt.id = pt4p.product_tag_id)
GROUP BY p.id
ORDER BY p.created
LIMIT 30;
Run Code Online (Sandbox Code Playgroud)
有大约280,000个产品,130个标签,524,000个链接记录,我已经分析了表格.问题是它需要花费80多秒才能运行(在合适的硬件上),这对我来说是错误的.
这是EXPLAIN的结果:
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE p index NULL created 4 NULL 30 "Using temporary"
1 SIMPLE pt4p ref idx_product_tags_for_products idx_product_tags_for_products 3 s.id 1 "Using index"
1 SIMPLE pt eq_ref PRIMARY PRIMARY 4 …Run Code Online (Sandbox Code Playgroud)