使用MySQL表进行实时计算
我在MySQL中有两个表,它们都带有时间序列,如:使用MySQL表进行实时计算,mysql,Mysql,我在MySQL中有两个表,它们都带有时间序列,如: 表1 “时间”“打开”“高”“低”“关闭” “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 “时间”“打开”“高”“低”“关闭” “2014.01.15 00
- 表1
- “时间”“打开”“高”“低”“关闭”
- “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
- “时间”“打开”“高”“低”“关闭”
- “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”
- “2014.01.15 00:20”1244.25*27.378 1244.28*27.378 1243.88*27.377 1243.91*27.378
谢谢。您的第三个表完全来自前两个表,因此您可以将其实现为查询或视图
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
有没有一个令人信服的原因可以解释为什么不能将两个表合并成一个表,然后在更新行时只在表中执行计算?也许可以使用triggersPlease将问题适当地格式化视图-php将访问新表,并在web上显示它。我认为在生成新表时计算一次比每次在web上显示时计算一次要好。所有的表都相当大,有数千行。最后一个几乎每秒更新一次。新表将被php访问并显示在网站上——整个表。出于加载的原因,我认为在创建新表时进行一次计算比在web上为每个用户显示新表时进行一次计算更好。