【发布时间】:2023-01-17 20:22:49
【问题描述】:
使用:
sqlx = { version = "0.6.2", features = ["runtime-tokio-native-tls", "mysql"] }
当我运行以下代码时(在发布模式)针对在同一台机器上运行的 MySQL 8.0.31 服务器(无 AUTO_COMMIT):
let mut tx = pool.begin().await?;
for i in 0..1_000 {
let q = &format!("INSERT INTO tbl_abc(some_col) VALUES ({i})");
sqlx::query(q).execute(&mut tx).await?;
}
tx.commit().await?;
,需要超过 40 秒才能完成(每条记录约 40 毫秒)。插入较少的记录,例如 50-100,是可以的(每条记录约 0.12 毫秒)。
连接池的大小似乎并不重要(不是应该的,而是我尝试过的,以防万一)。
【问题讨论】: