小编Thi*_*ark的帖子

在查询中重复相同的功能

在下面的查询中,有重复的计算,例如对 的三个调用SUM(p.amount)。MySQL 是否为每个函数调用重新计算,或者是否有某种内存优化?如果没有,如何优化这种查询以获得最大性能?

似乎在第一次计算后通过别名获得下一个计算会更快total_payemnts,但这只会引发错误。

SELECT LEFT(c.last_name, 1) AS 'last_names',
    SUM(p.amount) AS 'total_payments', 
    COUNT(p.rental_id) AS 'num_rentals',
    SUM(p.amount) / COUNT(p.rental_id) AS 'avg_pay'
FROM customer c
JOIN payment p ON p.customer_id = c.customer_id
GROUP BY LEFT(c.last_name, 1)
ORDER BY SUM(p.amount) DESC;
Run Code Online (Sandbox Code Playgroud)

此查询在MySQL Sakila示例数据库上运行。

mysql optimization

5
推荐指数
1
解决办法
1693
查看次数

标签 统计

mysql ×1

optimization ×1