我有一个从MySQL表返回的值数据集,然后进行绘图。每个数据点()都应该在之间有一个固定的时间段,EG:
数据点1: 1-日期/时间: 2013-02-11 09:00
数据点2: 2-日期/时间: 2013-02-11 09:05:00
数据点3: 3-日期/时间: 2013-02-11 09:10:00
然而,情况并不总是如此。如果我们能够为图表包提供一组数据值、一个开始时间和一个间隔时间,它可以更快地处理和显示图表,而不是提供一个值列表和一个日期/时间列表。
在缺少数据点的情况下,使用0值填充MySQL查询最有效的方法是什么?例如,如果缺少数据点2,则使用上面的数据,我可以使用什么查询来获取MySQL来返回以下数据集:
数据点1: 1-日期/时间: 2013-02-11 09:00
数据点2: 0-日期/时间: 2013-02-11 09:05:00
数据点3: 3-日期/时间: 2013-02-11 09:10:00
提前感谢
发布于 2013-02-11 10:23:03
我不会将垃圾输入到DB中,您可以在应用层进行预处理,它应该更快、更高效。
如果您对每个插入执行IO,则IO将成为一个巨大的瓶颈。在应用程序层(如Java )中排序和插入虚拟点可能会更快(在呈现图表之前可以这样做)。
此外,假设您有一个以CSV格式记录数据的文件,使用LOAD DATA的插入将非常快(可能比每行预处理和逐行插入快20倍)。
发布于 2013-02-11 15:01:19
在这个场景中,我将代码中的数组/散列/list初始化为零/空值,然后覆盖从数据库接收数据的值。
如果这需要服务器端完成,您可以创建一个临时表,将所有可能的日期存储在您感兴趣的时间间隔内,然后将当前的查询加入到其中。
https://stackoverflow.com/questions/14810111
复制相似问题