我有一个库存表
id | part_number
----------------
1 | R101
2 | E763
3 | H293
4 | N837
5 | Y121
6 | U837
订单商品的表格
id | order_id | quantity | price
--------------------------------
1 | 1 | 3 | 45
2 | 1 | 6 | 20
3 | 1 | 10 | 10
4 | 2 | 3 | 22
5 | 2 | 8 | 10
6 | 3 | 87 | 98
和订单商品部件号的表
id | order_items_id | inventory_id
----------------------------------
1 | 1 | 1
2 | 1 | 3
3 | 2 | 2
4 | 2 | 3
5 | 2 | 1
6 | 3 | 4
7 | 3 | 5
8 | 3 | 1
9 | 4 | 2
10 | 4 | 3
11 | 5 | 1
12 | 5 | 4
13 | 6 | 2
14 | 6 | 4
15 | 6 | 5
我有一个程序可以获得每个部件号和使用它的次数,但是一旦这些表变得非常大,它需要很长时间才能运行。我想提出一个有效的程序,可以实时返回这些信息。
part_number | number_of_times_used
----------------------------------
R101 | 27
E763 | 96
H293 | 12
N837 | 105
Y121 | 97
U837 | 0
答案 0 :(得分:0)
首先从你应该拥有的东西开始。表格应适当编入索引。假设order_items_id是对order_items.id的引用而order_id是对parts.id的引用,则应该在表上有主索引 - 对于部分,对于id的主索引,对于id的order_items索引。
然后你可以在order_item_part_numbers上创建外键 - 索引order_items_part_number.order_items_id到外键order_items.id,并将order_items_part_number.inventory_id索引到外键部分.id。
在对表进行适当索引后,您的查询应该会有相当好的表现:
data-interval="5000"