我们有一个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上找到的最接近的问题是这个:
注意:我正在基于Flask的Web应用程序中运行此查询,然后以图形形式显示结果。
如果您发布示例输出,将有助于我们进一步了解。您可以按故障类型分组,并在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
等等..
编辑已添加日期范围。使用日期之间的时间,您可以回溯到特定的范围,例如一周,一个月(不包括其他所有内容)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句