我有一个包含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 - MYSQL和LabVIEW,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30665975/