流动性测试
常规查询
模拟客户点开"流动性"tab,查询仅传入 1. token_address 1. ts范围 1. platform
测试结果
- len(ng) = 11
- 并发 = 60
- QPS = 8899.5
- min = 4 ms
- max = 180 ms
summary + 199082 in 00:00:23 = 8477.3/s Avg: 6 Min: 4 Max: 577 Err: 0 (0.00%) Active: 60 Started: 60 Finished: 0
summary + 260937 in 00:00:30 = 8697.9/s Avg: 6 Min: 4 Max: 127 Err: 0 (0.00%) Active: 60 Started: 60 Finished: 0
summary = 460019 in 00:00:53 = 8601.1/s Avg: 6 Min: 4 Max: 577 Err: 0 (0.00%)
summary + 258324 in 00:00:30 = 8610.8/s Avg: 6 Min: 4 Max: 261 Err: 0 (0.00%) Active: 60 Started: 60 Finished: 0
summary = 718343 in 00:01:23 = 8604.6/s Avg: 6 Min: 4 Max: 577 Err: 0 (0.00%)
summary + 266881 in 00:00:30 = 8896.0/s Avg: 6 Min: 4 Max: 107 Err: 0 (0.00%) Active: 60 Started: 60 Finished: 0
summary = 985224 in 00:01:53 = 8681.6/s Avg: 6 Min: 4 Max: 577 Err: 0 (0.00%)
summary + 265343 in 00:00:30 = 8844.8/s Avg: 6 Min: 4 Max: 62 Err: 0 (0.00%) Active: 60 Started: 60 Finished: 0
summary = 1250567 in 00:02:23 = 8715.7/s Avg: 6 Min: 4 Max: 577 Err: 0 (0.00%)
summary + 266190 in 00:00:30 = 8873.0/s Avg: 6 Min: 4 Max: 165 Err: 0 (0.00%) Active: 60 Started: 60 Finished: 0
summary = 1516757 in 00:02:53 = 8742.9/s Avg: 6 Min: 4 Max: 577 Err: 0 (0.00%)
summary + 268043 in 00:00:30 = 8934.8/s Avg: 6 Min: 4 Max: 61 Err: 0 (0.00%) Active: 60 Started: 60 Finished: 0
summary = 1784800 in 00:03:23 = 8771.2/s Avg: 6 Min: 4 Max: 577 Err: 0 (0.00%)
summary + 266386 in 00:00:30 = 8879.5/s Avg: 6 Min: 4 Max: 95 Err: 0 (0.00%) Active: 60 Started: 60 Finished: 0
summary = 2051186 in 00:03:53 = 8785.1/s Avg: 6 Min: 4 Max: 577 Err: 0 (0.00%)
summary + 269192 in 00:00:30 = 8973.1/s Avg: 6 Min: 4 Max: 69 Err: 0 (0.00%) Active: 60 Started: 60 Finished: 0
summary = 2320378 in 00:04:23 = 8806.5/s Avg: 6 Min: 4 Max: 577 Err: 0 (0.00%)
summary + 265146 in 00:00:30 = 8838.2/s Avg: 6 Min: 4 Max: 66 Err: 0 (0.00%) Active: 60 Started: 60 Finished: 0
summary = 2585524 in 00:04:53 = 8809.8/s Avg: 6 Min: 4 Max: 577 Err: 0 (0.00%)
summary + 261519 in 00:00:30 = 8717.3/s Avg: 6 Min: 4 Max: 191 Err: 0 (0.00%) Active: 60 Started: 60 Finished: 0
summary = 2847043 in 00:05:23 = 8801.2/s Avg: 6 Min: 4 Max: 577 Err: 0 (0.00%)
summary + 267335 in 00:00:30 = 8911.2/s Avg: 6 Min: 4 Max: 79 Err: 0 (0.00%) Active: 60 Started: 60 Finished: 0
summary = 3114378 in 00:05:53 = 8810.5/s Avg: 6 Min: 4 Max: 577 Err: 0 (0.00%)
summary + 269073 in 00:00:30 = 8969.1/s Avg: 6 Min: 4 Max: 63 Err: 0 (0.00%) Active: 60 Started: 60 Finished: 0
summary = 3383451 in 00:06:23 = 8822.9/s Avg: 6 Min: 4 Max: 577 Err: 0 (0.00%)
summary + 260562 in 00:00:30 = 8685.4/s Avg: 6 Min: 4 Max: 218 Err: 0 (0.00%) Active: 60 Started: 60 Finished: 0
summary = 3644013 in 00:06:53 = 8812.9/s Avg: 6 Min: 4 Max: 577 Err: 0 (0.00%)
summary + 265446 in 00:00:30 = 8845.3/s Avg: 6 Min: 4 Max: 126 Err: 0 (0.00%) Active: 60 Started: 60 Finished: 0
summary = 3909459 in 00:07:23 = 8815.1/s Avg: 6 Min: 4 Max: 577 Err: 0 (0.00%)
summary + 266888 in 00:00:30 = 8899.5/s Avg: 6 Min: 4 Max: 180 Err: 0 (0.00%) Active: 60 Started: 60 Finished: 0
测试SQL
WITH token0 AS (
SELECT ts,
log_id,
type,
token0_address,
token1_address,
token0_symbol,
token1_symbol,
amount0,
amount1,
value,
maker,
transaction_hash,
height,
transaction_id,
factory,
token0_tags
FROM bnb_dw.dex_swap_liq_bsc_with_tags
WHERE token0_address = ?
AND platform_id = 14
AND ts >= EXTRACT(EPOCH FROM '2025-09-01 00:00:00'::TIMESTAMP)::BIGINT --{startTime}
AND ts <= EXTRACT(EPOCH FROM '2025-11-01 00:00:00'::TIMESTAMP)::BIGINT -- {endTime}
AND dt >= '2025-09-01' AND dt < '2025-11-01' -- 分区裁剪,必须跟ts范围相同
AND (ts, height, transaction_id, log_id) < (EXTRACT(EPOCH FROM '2025-11-01 00:00:00'::TIMESTAMP)::BIGINT/*{endTime}*/, 9999999, 123456, 65536)
ORDER BY ts DESC, height DESC, transaction_id DESC, log_id DESC
LIMIT 100
), token1 AS (
SELECT ts,
log_id,
type,
token0_address,
token1_address,
token0_symbol,
token1_symbol,
amount0,
amount1,
value,
maker,
transaction_hash,
height,
transaction_id,
factory,
token1_tags
FROM bnb_dw.dex_swap_liq_bsc_with_tags
WHERE token1_address = ?
AND platform_id = 14
AND ts >= EXTRACT(EPOCH FROM '2025-09-01 00:00:00'::TIMESTAMP)::BIGINT --{startTime}
AND ts <= EXTRACT(EPOCH FROM '2025-11-01 00:00:00'::TIMESTAMP)::BIGINT -- {endTime}
AND dt >= '2025-09-01' AND dt < '2025-11-01' -- 分区裁剪,必须跟ts范围相同
AND (ts, height, transaction_id, log_id) < (EXTRACT(EPOCH FROM '2025-11-01 00:00:00'::TIMESTAMP)::BIGINT/*{endTime}*/, 9999999, 123456, 65536)
ORDER BY ts DESC, height DESC, transaction_id DESC, log_id DESC
LIMIT 100
)
SELECT * FROM (
SELECT * FROM token0
UNION ALL
SELECT * FROM token1
)q
ORDER BY ts DESC, height DESC, transaction_id DESC, log_id DESC
复杂查询
- 模拟复杂过滤条件查询。
测试结果
测试SQL