使用MySQL表实时计算

时间:2014-01-14 23:41:19

标签: mysql

我在MySQL中有两个表,时间序列如下:

  • 表1
  • “time”“open”“high”“low”“close”
  • “2014.01.15 00:20”“1244.25”“1244.28”“1243.88”“1243.91”
  • “2014.01.15 00:15”“1244.24”“1244.36”“1244.16”“1244.22”
  • “2014.01.15 00:10”“1244.62”“1244.63”“1244.16”“1244.21”

  • 表2

  • “time”“open”“high”“low”“close”
  • “2014.01.15 00:20”“27.378”“27.378”“27.377”“27.378”
  • “2014.01.15 00:15”“27.379”“27.379”“27.377”“27.377”
  • “2014.01.15 00:10”“27.378”“27.378”“27.377”“27.378”

现在,我需要创建一个第3个表格,该表格将通过乘以相关值来创建。

  • “2014.01.15 00:20”1244.25 * 27.378 1244.28 * 27.378 1243.88 * 27.377 1243.91 * 27.378

到目前为止,它应该不难,但问题是两个表几乎都是实时更新 - 每隔几秒钟。当然不是整个表,而是最新的一行。

现在,我如何将2个原始表格相乘并创建一个新的表格,并且每隔几秒钟自动更新一次?

您会建议采用什么方法?使用cron,或?

顺便说一句 - 抱歉,不是IT人员。需要找到一般解决方案如何做到这一点。

感谢。

1 个答案:

答案 0 :(得分:0)

您的第三个表格完全来自前两个表格,因此您可以将其作为查询或视图实施。

 SELECT a.open*b.open AS open,
        a.high*b.high AS high,
        a.low *b.low  AS low,
        a.close*b.close AS close
   FROM table1 AS a
   JOIN table2 AS b ON a.time = b.time

从您的问题中不清楚为什么需要一个包含实际数据的单独表格。

修改

将索引放在两个表的time列上。

如果您只想检索过去24小时内的行,请使用

结束查询
 WHERE a.time >= NOW() - INTERVAL 1 DAY