我们必须检查700万行以进行统计分析。运行查询大约需要30秒钟,而使用索引并不能改善查询。
索引根本没有改变速度。
我尝试在where字段,where字段+分组依据和where字段+和上添加索引。
服务器类型为MYSQL,服务器版本为5.5.31。
SELECT
NOW(), `banner_campagne`.name, `banner_view`.banner_uid, SUM(`banner_view`.fetched) AS fetched,
SUM(`banner_view`.loaded) AS loaded,
SUM(`banner_view`.seen) AS seen
FROM `banner_view` INNER JOIN
`banner_campagne`
ON `banner_campagne`.uid = `banner_view`.banner_uid AND
`banner_campagne`.deleted = 0 AND
`banner_campagne`.weergeven = 1
WHERE
`banner_view`.campagne_uid = 6 AND `banner_view`.datetime >= '2019-07-31 00:00:00' AND `banner_view`.datetime < '2019-08-30 00:00:00'
GROUP BY
`banner_view`.banner_uid
我希望查询运行大约5秒钟。
答案 0 :(得分:1)
此查询所需的索引可能是:
banner_view(campagne_uid, datetime)
banner_campagne(banner_uid, weergeven, deleted)
请注意,索引中列的顺序确实很重要。