如何优化这个复杂的MySql查询

时间:2015-05-28 10:18:48

标签: php mysql optimization mysqli query-optimization

我有这个查询

.append()

目前执行时间太长,表格临时有150 000行并且正在增加。

我通过php(mysqli)运行它。如何提高性能?

1 个答案:

答案 0 :(得分:1)

在您的查询条件

AND id NOT IN (SELECT id FROM temp WHERE count < 3)

可以用作

and `count` < 3 

您也可以使用exists策略转换子查询,最后添加一些索引。 https://dev.mysql.com/doc/refman/5.5/en/subquery-optimization-with-exists.html

select id,number,`count`,name from temp t1
where t1.`count` < 3
and not exists(
 select 1 from temp t2 
 where t2.number = t1.number AND t2.count > t1.count 
)

索引可能需要(如果还没有)

alter table temp add index cnt_idx(`count`);
alter table temp add index number_idx(`number`);

确保在应用索引之前备份表。

您始终可以使用explain select来检查查询运行状况。