我们有一个MySQL数据库,用于测量自动化测试的成功和失败。现在我们需要查询数据库,找出每天有多少故障发生,原因是什么。到目前为止,我提出的问题如下:
select * from failures
where time >= '{time}' and time <= '{time} 23:59:59' and cause = '{fail_type} failed'这个查询有几个变体。我遇到的问题是,我们需要在数据库中查询1、7和56天的这些信息。这意味着我分别运行了1次、7次和56次查询。随着数字的增加,查询的时间变得非常长。我还必须对每种失败类型运行这些查询,这确实增加了查询时间。
是否有更有效的方法来查询数据库?到目前为止,我在Stack上发现的最接近的问题是:
注意:我正在一个基于水瓶的web应用程序中运行这个查询,然后绘制结果。
发布于 2015-04-20 14:04:38
如果你张贴一个样本输出,它将有助于我们了解更多。您可以按失败类型进行分组,并在where子句中放置日期间隔。
类似于:
SELECT * from tbl_failures
WHERE (cause = '{fail_type} failed') AND (date_field between date_sub(curdate(), interval 7 day) and curdate()))
Group by tbl_failures.Type相同的7天查询图:
SELECT * from tbl_failures
WHERE (cause = '{fail_type} failed') AND (date_field between date_sub(curdate(), interval 1 week) and curdate()))
Group by tbl_failures.Type以此类推。
编辑添加了日期范围。使用日期在之间,您可以回顾一个特定的范围,如一个星期,一个月不包括其他一切。
https://stackoverflow.com/questions/29749007
复制相似问题