我有一个查询运行时间超过 30 秒,导致我们的应用程序出现延迟。我尝试过对表建立索引并调整查询结构,但仍然很慢。我可以使用其他优化技术来加快查询速度吗?
谢谢你。
SELECT
orders.order_id,
orders.order_date,
customers.customer_name,
products.product_name,
order_details.quantity,
order_details.unit_price
FROM
orders
JOIN
customers ON orders.customer_id = customers.customer_id
JOIN
order_details ON orders.order_id = order_details.order_id
JOIN
products ON order_details.product_id = products.product_id
WHERE
orders.order_date >= '2022-01-01'
AND products.category = 'Electronics'
ORDER BY
orders.order_date DESC;
错误:查询超时已过期。该查询执行时间超过 30 秒。
这些综合指数可能会有所帮助:
orders: INDEX(order_date, customer_id, order_id)
customers: INDEX(customer_id, customer_name)
products: INDEX(category, product_id, product_name)
如果没有,请为每个表提供`SHOW CREATE TABLE,以便我们可以更深入地研究。