我有一个包含 27 列和 300,000 行数据的表,其中 8 列填充了数据 0 或 1 或 null。使用 LabVIEW,我使用以下查询获取每列的总数:
select
d_1_result,
d_2_value_1_result,
de_2_value_2_result,
d_3_result,
d_4_value_1_result,
d_4_value_2_result,
d_5_result
from Table_name_vp
where ( insp_time between
"15-02-02 06:00:00" and "15-02-02 23:59:59" or
inspection_time between "15-02-03 00:00:00" and "15-02-03 06:00:00")
and partname = "AbvQuene";
此查询运行用户输入的天数,例如 120 天。 我发现查询花费的总时间是 8 秒,这不太好。 我想将时间减少到 8 毫秒。 我也把引擎换成了Myisam。 任何减少查询所消耗时间的建议。 (LabVIEW处理不花费时间)
最佳答案
这取决于数据,以及 WHERE
子句实际选择了 300,000 行中的多少行。显然,如果将 300,000 全部包括在内,则需要读取整个表。如果行数较少,则在 insp_time
或 inspection_time
上建立索引(这只是一个拼写错误,这些实际上是相同的字段吗?)和/或 partname
可能会有所帮助。确切的索引将取决于您的数据。
关于MYSQL 和 LabVIEW,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30665975/