Backend Lab 1-2 Event-based System 新增大量資料

要測試一些效能差異前需要 insert 大量資料的方式:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
INSERT INTO events (id, type, payload, created_at)
SELECT
gen_random_uuid(),
'order_created',
jsonb_build_object(
'order_id', 'order-' || gs,
'total_amount', (random() * 1000)::int
),
now() - (gs || ' seconds')::interval
FROM generate_series(1, 10000) AS gs;

INSERT INTO events (id, type, payload)
SELECT
gen_random_uuid(),
'payment_confirmed',
jsonb_build_object(
'order_id', payload->>'order_id'
)
FROM events
WHERE type = 'order_created'
AND random() < 0.5;