为什么Bun查询数据库接口响应比Rust还快

bun的响应速度比rust快,表里三十多万条数据,我直接全查了。

javascript 复制代码
app.get("/", async (c) => {
  // ===== 1. 查询计时 =====
  const t1 = Date.now();
  const weightRows = await db.execute(sql`
      SELECT *
      FROM "weight"
      ORDER BY "uuid" ASC
    `);
  const queryTime = Date.now() - t1;
  // ===== 2. 纯序列化计时(手动 JSON.stringify) =====
  const t2 = Date.now();
  const jsonString = JSON.stringify(weightRows);
  const serializeTime = Date.now() - t2;

  console.log(
    `[性能] 查询 ${queryTime}ms | 序列化 ${serializeTime}ms | 行数 ${weightRows.length}`,
  );

  // ===== 3. 返回手动序列化结果,避免 c.json 二次序列化 =====
  return c.body(jsonString, 200, {
    "Content-Type": "application/json; charset=utf-8",
    // 可选:告诉客户端内容长度,帮助进度条
    "Content-Length": Buffer.byteLength(jsonString).toString(),
  });
});
rust 复制代码
async fn root(State(state): State<SharedState>) -> impl IntoResponse {
    let start = Instant::now();

    let rows = sqlx::query_as::<_, WeightRawRow>("SELECT * FROM weight ORDER BY uuid")
        .fetch_all(&state.pool)
        .await
        .unwrap();

    let query_time = start.elapsed();
    println!(
        "查询完成: {}ms, 行数: {}",
        query_time.as_millis(),
        rows.len()
    );

    let serialize_start = Instant::now();
    let json_bytes = serde_json::to_vec(&rows).unwrap();
    let serialize_time = serialize_start.elapsed();
    println!("序列化耗时: {}ms", serialize_time.as_millis());

    let total_time = start.elapsed();
    println!("总耗时: {}ms", total_time.as_millis());

    Response::builder()
        .header("content-type", "application/json")
        .body(Body::from(json_bytes))
        .unwrap()
}
相关推荐
Zane19942 分钟前
遍历时删元素为什么报错:modCount 这个"计数器"在背后盯着你
java·后端
苍何8 分钟前
原来世界模型,已经能边玩边生成了
后端
七牛开发者9 分钟前
拆解 DeepSeek Harness:Profile 与 Bundle 如何装配运行时
前端·javascript·后端
HjhIron14 分钟前
从零搭建后端业务:数据库表设计、索引优化与部署架构解析
后端
Zane199419 分钟前
为什么 del 一个对象有时立刻消失,有时却纹丝不动?一文讲透引用计数与垃圾回收
后端·python
编码浪子23 分钟前
Rust 智能指针深度实战:Box/Rc/Arc/RefCell 选型决策与内存管理避坑
开发语言·后端·rust
提线木偶1 小时前
CORS 到底谁说了算?一份跨域配置的避坑指南
前端·后端
卷无止境2 小时前
Python的contextlib与 FastAPI 中的上下文管理
后端·python·fastapi
用户938515635072 小时前
从同源策略到Nginx代理:React+NestJS全栈项目跨域实战
后端·docker
卷无止境2 小时前
FastAPI Events 深度解析与工程实践
后端·python·fastapi