寻找巨大的表查询的优化

时间:2017-06-24 16:54:05

标签: mysql sql

我有一个包含多方之间交易的表,并且想要查询它以创建可视化并执行基本会计。 表是这样的:

Rails.application.routes

所以b_pos和s_pos是商店之间的交易链中的一个位置。所以链看起来像store1 - > store2 - > store3等等。

所以我想用我的SQL做几件事。

  1. 在各方之间创建所有不同的可视化路径
  2. 计算这些路径中各方之间销售的货物总量
  3. 在这些不同的路径中执行的交易总数。
  4. 这是我的SQL。唯一的问题是这个查询速度越来越快,表超过1mil记录(30秒),我的表可能会达到700mil记录。我该如何处理这个问题?

    我可以将查询限制在某些时间间隔,但需要相当快。

    +----+-----------+--------+----------------------------+-------------+------------+-------+-------+
    | id |transaction| amount | logged_at                  | buyer       | seller     | b_pos | s_pos |
    +----+-----------+--------+----------------------------+-------------+------------+-------+-------+
    |  1 | 1         | 125000 | 2017-05-28 21:54:53.069000 | store2      | store1     |     4 |     5 |
    |  2 | 1         | 109375 | 2017-05-28 21:54:53.069000 | store3      | store2     |     3 |     4 |
    |  3 | 1         |  75000 | 2017-05-28 21:54:53.069000 | store4      | store3     |     2 |     3 |
    |  4 | 1         | 100000 | 2017-05-28 21:54:53.069000 | store5      | store4     |     1 |     2 |
    |  5 | 2         |  50000 | 2017-05-28 21:55:53.069000 | store5      | store3     |     1 |     2 |
    

1 个答案:

答案 0 :(得分:0)

你的表使用索引吗?索引是提高性能的方法。看看这个:

Ion Multi Item Picker component