1. 为什么你的写入总是慢?
在分布式数据库中,使用 for 循环一条条 insert 是性能杀手。每一次 insert 都要经历网络 RTT、SQL 解析、事务开启、写入 WAL、事务提交、返回结果。如果写入 100 万条数据,这套流程要跑 100 万次。
正确姿势是使用 COPY 命令或者 Batch Insert(批量插入)。
1.1 准备测试数据(模拟 IoT 场景)
使用 Python 生成模拟传感器数据文件(CSV 格式),目标 100 万行。假设场景:1000 个设备,每台设备上传 1000 条温度和压力数据。
创建生成脚本 gen_data.py:
import csv
import random
import time
from datetime import datetime, timedelta
FILENAME = "iot_data_1m.csv"
ROWS = 1000000
START_TIME = datetime.now()
print(f"开始生成 {ROWS} 行数据...")
start = time.time()
with open(FILENAME, "w", newline='') as f:
writer = csv.writer(f)
for i in range(ROWS):
ts = START_TIME + timedelta(milliseconds=i*10)
dev_id = f"dev-{random.randint(1,1000)}"
temp = round(random.uniform(20.0,80.0),2)
press = round(random.uniform(0.5,5.0),2)
status = random.choice([0,0,0,1])
writer.writerow([ts, dev_id, temp, press, status])
end = time.time()
print(f"生成完毕!耗时: 秒")


