【发布时间】:2018-10-22 05:10:54
【问题描述】:
要仅获取具有最新时间戳的数据,我使用此答案中的 mysql 查询:
fetch-the-row-which-has-the-max-value- for-a-column
我的查询如下:
SELECT stock_id,timestamp,price FROM market m1
WHERE timestamp =
(SELECT MAX(timestamp) FROM market m2 WHERE m1.stock_id = m2.stock_id)
但执行需要 10 分钟。
优化它的不同选项是什么? (mysql)
市场有以下架构:(sqlalchemy)
class Market(db.Model):
stock_id=db.Column(db.Integer,db.ForeignKey('stock.id'),primary_key=True)
timestamp=db.Column(db.Integer,primary_key=True)
price=db.Column(db.Float)
【问题讨论】:
-
更高效的 groupwise-max 方法:mysql.rjweb.org/doc.php/groupwise_max
标签: mysql sqlalchemy query-optimization greatest-n-per-group database-optimization