大约一年前,我引入了一个查询,该查询返回一种“客户也已购买”数据集。当时它运行得相当快,但最近变得非常慢,有时需要 5 秒或更长时间。
SELECT p.*, COUNT(*) AS total
FROM orders_products AS op
JOIN products AS p ON p.products_id = op.products_id
JOIN (
SELECT orders_id
FROM orders_products
WHERE products_id = 100
) AS opf ON opf.orders_id = op.orders_id
WHERE op.products_id <> 100
GROUP BY products_id
ORDER BY total DESC
LIMIT 5;
Run Code Online (Sandbox Code Playgroud)
+------+-------------+-----------------+--------+-----------------------+-------------+---------+------------------------------------+------+----------+---------------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
+------+-------------+-----------------+--------+-----------------------+-------------+---------+------------------------------------+------+----------+---------------------------------+
| …Run Code Online (Sandbox Code Playgroud)