填补不完整MySQL数据集空白的最有效方法是什么?

填补不完整MySQL数据集空白的最有效方法是什么?,mysql,Mysql,我有一个MySQL表中返回的值数据集,然后将其绘制成图表。每个数据点之间应有固定的时间段,例如: 数据点1:1- 日期/时间:2013-02-11 09:00:00 数据点2:2- 日期/时间:2013-02-11 09:05:00 数据点3:3- 日期/时间:2013-02-11 09:10:00 然而,情况并非总是如此。如果我们可以为图表包提供一组数据值、开始时间和间隔时间,它可以比提供值列表和日期/时间列表更快地处理和显示图表 在缺少数据点的情况下,用0值预填充或后填充MySQL查询最有效

我有一个MySQL表中返回的值数据集,然后将其绘制成图表。每个数据点之间应有固定的时间段,例如:

数据点1:1- 日期/时间:2013-02-11 09:00: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:00

数据点2:0- 日期/时间:2013-02-11 09:05:00

数据点3:3- 日期/时间:2013-02-11 09:10:00


提前感谢

我不会在数据库中输入垃圾,你可以在应用层做预处理,它应该更快更有效

如果要为每个插入执行IO,IO将是一个巨大的瓶颈。在应用程序层(如Java)中排序和插入虚拟点可能会更快—您可以在绘制图表之前执行此操作


此外,假设您有一个以CSV格式记录数据的文件,使用LOAD DATA的insert将非常快,可能比预处理每行并逐行插入快20倍。在这种情况下,我会将代码中的数组/哈希/列表初始化为零/空值,然后在从数据库接收数据的地方覆盖值

如果需要在服务器端执行此操作,您可以创建一个临时表,存储感兴趣的时间间隔内所有可能的日期,并将当前查询加入其中


下面是第二个示例:

您的应用程序层是什么?