试图优化大规模表格上的图形查询

时间:2016-01-27 09:11:32

标签: mysql

我正试图找到一种方法来快速查询庞大的表格以进行图表统计。这是我如何形成我的图表数据。日是在x轴上,金额是y轴。

select DATE_FORMAT(earning_created, '%c/%e/%Y') AS day, COUNT(earning_link_id) AS amount  from earnings where earning_link_id = 1093
GROUP BY DATE(earning_created)

获得21.8s ....收益大约有550,000行。

我目前正在设置一个只读副本服务器,但这只是暴力,而不是一种优雅的查询方法。

我想知道如何优化此类查询,以便快速获取图表数据?

1 个答案:

答案 0 :(得分:1)

正如评论中所建议的那样,该表可能缺乏索引。

最明显的是earning_link_id,因为它是where条件中使用的列。

如果您对请求有性能问题和/或想要对其进行优化,请注意,请使用EXPLAINEXPLAIN EXTENDED。它将向您展示MySQL如何扫描您的表以回答您的查询。如果您的表没有已过滤列的索引( where condition ),它将扫描所有非常昂贵的行;而在earning_link_id上有索引,MySQL不需要扫描整个表来查找所有受影响的行(查询)。