Skip to content

Commit f75b257

Browse files
committed
更新测试结果
1 parent e868818 commit f75b257

6 files changed

Lines changed: 179 additions & 459 deletions

File tree

benchmark.py

Lines changed: 67 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -144,43 +144,7 @@ def rand_id(pool):
144144
"SELECT 点查询(PK)",
145145
lambda: f"SELECT id, name, age, score FROM bench_users WHERE id = {rand_id(ids)}",
146146
),
147-
(
148-
"SELECT 范围扫描(age)",
149-
lambda: (
150-
lambda a=random.randint(18, 50):
151-
f"SELECT id, name, age FROM bench_users WHERE age >= {a} AND age <= {a+5}"
152-
)(),
153-
),
154-
(
155-
"SELECT ORDER BY+LIMIT",
156-
lambda: "SELECT id, name, score FROM bench_users ORDER BY score LIMIT 10",
157-
),
158-
(
159-
"SELECT COUNT(*)",
160-
lambda: (
161-
lambda uid=rand_id(user_ids):
162-
f"SELECT COUNT(*) FROM bench_orders WHERE user_id = {uid}"
163-
)(),
164-
),
165-
(
166-
"SELECT SUM(amount)",
167-
lambda: (
168-
lambda uid=rand_id(user_ids):
169-
f"SELECT SUM(amount) FROM bench_orders WHERE user_id = {uid}"
170-
)(),
171-
),
172-
(
173-
"SELECT AVG(amount)",
174-
lambda: (
175-
lambda uid=rand_id(user_ids):
176-
f"SELECT AVG(amount) FROM bench_orders WHERE user_id = {uid}"
177-
)(),
178-
),
179-
(
180-
"SELECT GROUP BY",
181-
lambda: "SELECT status, COUNT(*) FROM bench_orders GROUP BY status",
182-
),
183-
(
147+
(
184148
"JOIN 两表(orders+users)",
185149
lambda: (
186150
lambda uid=rand_id(user_ids):
@@ -201,6 +165,42 @@ def rand_id(pool):
201165
f"AND bench_orders.id = {oid}"
202166
)(),
203167
),
168+
# (
169+
# "SELECT 范围扫描(age)",
170+
# lambda: (
171+
# lambda a=random.randint(18, 50):
172+
# f"SELECT id, name, age FROM bench_users WHERE age >= {a} AND age <= {a+5}"
173+
# )(),
174+
# ),
175+
# (
176+
# "SELECT ORDER BY+LIMIT",
177+
# lambda: "SELECT id, name, score FROM bench_users ORDER BY score LIMIT 10",
178+
# ),
179+
# (
180+
# "SELECT COUNT(*)",
181+
# lambda: (
182+
# lambda uid=rand_id(user_ids):
183+
# f"SELECT COUNT(*) FROM bench_orders WHERE user_id = {uid}"
184+
# )(),
185+
# ),
186+
# (
187+
# "SELECT SUM(amount)",
188+
# lambda: (
189+
# lambda uid=rand_id(user_ids):
190+
# f"SELECT SUM(amount) FROM bench_orders WHERE user_id = {uid}"
191+
# )(),
192+
# ),
193+
# (
194+
# "SELECT AVG(amount)",
195+
# lambda: (
196+
# lambda uid=rand_id(user_ids):
197+
# f"SELECT AVG(amount) FROM bench_orders WHERE user_id = {uid}"
198+
# )(),
199+
# ),
200+
(
201+
"SELECT GROUP BY",
202+
lambda: "SELECT status, COUNT(*) FROM bench_orders GROUP BY status",
203+
),
204204
(
205205
"JOIN+GROUP BY+HAVING",
206206
lambda: (
@@ -211,36 +211,36 @@ def rand_id(pool):
211211
"HAVING COUNT(*) >= 1"
212212
),
213213
),
214-
(
215-
"INSERT(users_insert)",
216-
lambda: (
217-
lambda nm="".join(random.choices(string.ascii_lowercase, k=6)),
218-
ag=random.randint(18, 60),
219-
sc=round(random.uniform(0, 100), 2):
220-
f"INSERT INTO bench_users_insert VALUES "
221-
f"({random.randint(1000000, 9999999)}, '{nm}', {ag}, {sc})"
222-
)(),
223-
),
224-
(
225-
"UPDATE(score by id)",
226-
lambda: (
227-
lambda uid=rand_id(ids), sc=round(random.uniform(0, 100), 2):
228-
f"UPDATE bench_users SET score = {sc} WHERE id = {uid}"
229-
)(),
230-
),
231-
(
232-
"读写混合(join+range_update)",
233-
lambda: (
234-
lambda uid=rand_id(user_ids),
235-
iid=random.randint(1, max(1, data_scale * 5 - data_scale)),
236-
price=round(random.uniform(1, 200), 2): [
237-
f"UPDATE bench_order_items SET price = {price} WHERE id >= {iid} AND id <= {iid + data_scale}",
238-
f"SELECT * "
239-
f"FROM bench_users "
240-
f"WHERE id = {uid}"
241-
]
242-
)(),
243-
),
214+
# (
215+
# "INSERT(users_insert)",
216+
# lambda: (
217+
# lambda nm="".join(random.choices(string.ascii_lowercase, k=6)),
218+
# ag=random.randint(18, 60),
219+
# sc=round(random.uniform(0, 100), 2):
220+
# f"INSERT INTO bench_users_insert VALUES "
221+
# f"({random.randint(1000000, 9999999)}, '{nm}', {ag}, {sc})"
222+
# )(),
223+
# ),
224+
# (
225+
# "UPDATE(score by id)",
226+
# lambda: (
227+
# lambda uid=rand_id(ids), sc=round(random.uniform(0, 100), 2):
228+
# f"UPDATE bench_users SET score = {sc} WHERE id = {uid}"
229+
# )(),
230+
# ),
231+
# (
232+
# "读写混合(join+range_update)",
233+
# lambda: (
234+
# lambda uid=rand_id(user_ids),
235+
# iid=random.randint(1, max(1, data_scale * 5 - data_scale)),
236+
# price=round(random.uniform(1, 200), 2): [
237+
# f"UPDATE bench_order_items SET price = {price} WHERE id >= {iid} AND id <= {iid + data_scale}",
238+
# f"SELECT * "
239+
# f"FROM bench_users "
240+
# f"WHERE id = {uid}"
241+
# ]
242+
# )(),
243+
# ),
244244
]
245245
return scenarios
246246

static/1-instance-test.txt

Lines changed: 22 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -3,100 +3,44 @@
33
============================================================
44
[SELECT 点查询(PK)]
55
请求数=200 错误数=0
6-
avg=4.04ms min=1.23ms max=13.72ms
7-
P50=3.66ms P90=6.58ms P99=9.50ms
8-
吞吐量 ≈ 247.6 QPS
6+
avg=4.77ms min=1.51ms max=16.29ms
7+
P50=4.24ms P90=7.88ms P99=16.09ms
8+
吞吐量 ≈ 209.5 QPS
99

10-
[SELECT 范围扫描(age)]
11-
请求数=200 错误数=0
12-
avg=4.53ms min=1.15ms max=13.77ms
13-
P50=4.12ms P90=7.39ms P99=12.91ms
14-
吞吐量 ≈ 220.6 QPS
15-
16-
[SELECT ORDER BY+LIMIT]
17-
请求数=200 错误数=0
18-
avg=3.96ms min=1.45ms max=10.23ms
19-
P50=3.59ms P90=6.22ms P99=9.22ms
20-
吞吐量 ≈ 252.4 QPS
21-
22-
[SELECT COUNT(*)]
23-
请求数=200 错误数=0
24-
avg=7.74ms min=2.38ms max=12.83ms
25-
P50=7.87ms P90=10.55ms P99=12.78ms
26-
吞吐量 ≈ 129.1 QPS
27-
28-
[SELECT SUM(amount)]
10+
[JOIN 两表(orders+users)]
2911
请求数=200 错误数=0
30-
avg=8.50ms min=2.55ms max=23.94ms
31-
P50=8.17ms P90=11.13ms P99=22.09ms
32-
吞吐量 ≈ 117.7 QPS
12+
avg=10.14ms min=2.65ms max=15.53ms
13+
P50=10.25ms P90=13.05ms P99=15.08ms
14+
吞吐量 ≈ 98.6 QPS
3315

34-
[SELECT AVG(amount)]
16+
[JOIN 三表(items+orders+products)]
3517
请求数=200 错误数=0
36-
avg=7.99ms min=2.74ms max=12.40ms
37-
P50=8.23ms P90=10.43ms P99=12.24ms
38-
吞吐量 ≈ 125.2 QPS
18+
avg=1545.82ms min=780.41ms max=1960.37ms
19+
P50=1563.08ms P90=1702.74ms P99=1956.97ms
20+
吞吐量 ≈ 0.6 QPS
3921

4022
[SELECT GROUP BY]
4123
请求数=200 错误数=0
42-
avg=9.32ms min=2.26ms max=17.00ms
43-
P50=9.27ms P90=11.65ms P99=15.27ms
44-
吞吐量 ≈ 107.3 QPS
45-
46-
[JOIN 两表(orders+users)]
47-
请求数=200 错误数=0
48-
avg=8.88ms min=1.75ms max=13.89ms
49-
P50=9.05ms P90=11.76ms P99=13.46ms
50-
吞吐量 ≈ 112.5 QPS
51-
52-
[JOIN 三表(items+orders+products)]
53-
请求数=200 错误数=0
54-
avg=1529.21ms min=406.77ms max=1858.29ms
55-
P50=1545.96ms P90=1714.14ms P99=1829.00ms
56-
吞吐量 ≈ 0.7 QPS
24+
avg=9.54ms min=3.53ms max=16.32ms
25+
P50=9.59ms P90=12.06ms P99=15.03ms
26+
吞吐量 ≈ 104.8 QPS
5727

5828
[JOIN+GROUP BY+HAVING]
5929
请求数=200 错误数=0
60-
avg=1434.47ms min=0.05ms max=1815.07ms
61-
P50=1560.04ms P90=1719.72ms P99=1806.56ms
30+
avg=1490.98ms min=0.05ms max=1963.79ms
31+
P50=1644.45ms P90=1792.66ms P99=1955.37ms
6232
吞吐量 ≈ 0.7 QPS
6333

64-
[INSERT(users_insert)]
65-
请求数=200 错误数=0
66-
avg=4.96ms min=1.45ms max=15.66ms
67-
P50=4.55ms P90=8.31ms P99=14.33ms
68-
吞吐量 ≈ 201.6 QPS
69-
70-
[UPDATE(score by id)]
71-
请求数=200 错误数=0
72-
avg=4.82ms min=1.34ms max=10.55ms
73-
P50=4.21ms P90=7.86ms P99=10.17ms
74-
吞吐量 ≈ 207.5 QPS
75-
76-
[读写混合(join+range_update)]
77-
请求数=200 错误数=0
78-
avg=26.69ms min=6.06ms max=84.70ms
79-
P50=19.23ms P90=59.00ms P99=83.58ms
80-
吞吐量 ≈ 37.5 QPS
81-
8234
============================================================
8335
场景 P50(ms) P90(ms) P99(ms) QPS
8436
------------------------------------------------------------
85-
SELECT 点查询(PK) 3.66 6.58 9.50 247.6
86-
SELECT 范围扫描(age) 4.12 7.39 12.91 220.6
87-
SELECT ORDER BY+LIMIT 3.59 6.22 9.22 252.4
88-
SELECT COUNT(*) 7.87 10.55 12.78 129.1
89-
SELECT SUM(amount) 8.17 11.13 22.09 117.7
90-
SELECT AVG(amount) 8.23 10.43 12.24 125.2
91-
SELECT GROUP BY 9.27 11.65 15.27 107.3
92-
JOIN 两表(orders+users) 9.05 11.76 13.46 112.5
93-
JOIN 三表(items+orders+products) 1545.96 1714.14 1829.00 0.7
94-
JOIN+GROUP BY+HAVING 1560.04 1719.72 1806.56 0.7
95-
INSERT(users_insert) 4.55 8.31 14.33 201.6
96-
UPDATE(score by id) 4.21 7.86 10.17 207.5
97-
读写混合(join+range_update) 19.23 59.00 83.58 37.5
37+
SELECT 点查询(PK) 4.24 7.88 16.09 209.5
38+
JOIN 两表(orders+users) 10.25 13.05 15.08 98.6
39+
JOIN 三表(items+orders+products) 1563.08 1702.74 1956.97 0.6
40+
SELECT GROUP BY 9.59 12.06 15.03 104.8
41+
JOIN+GROUP BY+HAVING 1644.45 1792.66 1955.37 0.7
9842
============================================================
9943

100-
总用时: 77.4s
44+
总用时: 77.6s
10145

10246
备注:200表规模benchmark,4kb-page,在缓冲池占用相同总内存的情况下,单例缓冲池比多实例模式(16)慢了约4倍,主要体现在多表联查和聚合查询上。分析原因可能是单实例模式在处理并发慢请求时,锁竞争较为激烈,导致响应时间增加。此外,单实例模式可能无法充分利用多核CPU的优势,从而限制了性能的提升。

0 commit comments

Comments
 (0)