我有一个包含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_timeinspection_time上的索引(这仅仅是一个错字,这些字段实际上是同一字段吗?)和/或partname可能会有所帮助。确切的索引将取决于您的数据。

关于mysql - MYSQL和LabVIEW,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30665975/

10-16 17:52