【发布时间】:2017-12-08 19:40:30
【问题描述】:
前提:
- 订单表 - ID、费率、单位、金额、时间戳
- 订单状态表 - id、order_id、状态、时间戳
两个表都是只插入的(没有更新)
对于每个创建的订单,状态表可能有一个或多个订单状态,例如 0 表示打开,1 表示完成等。
目的:
- 检索所有未结订单
- 按速率 desc/asc 检索所有未结订单订单
目前使用子查询、group by 和 having 子句也可以达到同样的效果。还尝试了连接、分组和有子句。
问题:
选择时间非常慢 - 对于大约一百万条记录的订单表大小,大约需要 500 到 1000 毫秒。
所需帮助:
- 索引建议
- 查询重写建议
非常感谢任何帮助。
【问题讨论】:
-
您在查询中有 DISTINCT 吗?
-
您可以编辑问题并添加表格结构(创建表格语句),包括您拥有的索引和约束。
-
请发布您的 SQL
标签: database postgresql