如果我们先两次调用Mysql来获取计数,然后再列出,则mysql查询会花费更多时间

时间:2018-12-15 05:44:21

标签: php mysql

我正面临与mysql查询有关的问题。我需要先计算否。按不同级别的记录,然后显示其列表,例如:

select MAX(Orders) from priority where priority_type='Top_Priority';
select MAX(Orders) from priority where priority_type='Priority';
select MAX(Orders) from priority where priority_type='Regular';
  • 最高优先级(120个订单)
  • 优先级(100个订单)
  • 常规(50个订单)

在那之后,我得到了相同的记录,如:

select * from priority where priority_type='Top_Priority';
select * from priority where priority_type='Priority';
select * from priority where priority_type='Regular';

执行需要很多时间。还有另一种方法可以提高执行性能。

1 个答案:

答案 0 :(得分:0)

您可以将每种类型的最大记录合并在一起。

SELECT t1.*, t2.OrderMax
FROM priority AS t1
JOIN (SELECT priority_type, MAX(Orders) AS OrderMax
      FROM priority
      GROUP BY priority_type) AS t2 ON t1.priority_ttpe = t2.priority_type

要加快此查询的速度,最好在表中(priority_type, Orders)上有一个多列索引。