Mysql 如何加快此查询的执行(子选择)?
这是我的问题,运行速度非常慢。如何提高性能?也许用连接代替sunselectsMysql 如何加快此查询的执行(子选择)?,mysql,performance,Mysql,Performance,这是我的问题,运行速度非常慢。如何提高性能?也许用连接代替sunselects select sfoa.firstname, sfoa.lastname, sfo.increment_id from sales_flat_order_address sfoa join sales_flat_order sfo on sfoa.parent_id = sfo.entity_id where parent_id in ( SELECT order_id FROM ( SELECT
select
sfoa.firstname,
sfoa.lastname,
sfo.increment_id
from sales_flat_order_address sfoa
join sales_flat_order sfo
on sfoa.parent_id = sfo.entity_id
where parent_id
in
(
SELECT
order_id
FROM
(
SELECT
sfoi.order_id,
GROUP_CONCAT(sfoi.sku SEPARATOR ', ') AS skus
FROM sales_flat_order_item sfoi
GROUP BY sfoi.order_id) t
WHERE t.skus LIKE '%whatever%'
AND t.skus RLIKE '[0-9]'
);
谢谢你的帮助 是的,使用子查询时速度较慢。改为使用联接
不管怎样,每次在MySQL中评估子查询时,都会执行它们,而不是所有的RDBMS,也就是说,基本上运行的是700万个查询!如果可能的话,使用联接会将其减少到1。即使添加索引可以提高它们的性能,您仍然可以运行它们
过去这里解释一下这个问题。。。第一步是检查indexe esAlready,请看这里。