You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Next.js 13.4 + Prisma优化:解决findMany数据过多加载缓慢问题

解决方案

核心思路

直接在数据库查询阶段完成「随机筛选+限制数量」,避免前端加载全量数据,从根源减少数据传输量和页面加载时间。

1. 优化API层的Prisma查询

修改你API文件夹中的代码,通过Prisma的orderBy: { _rand: true }实现随机排序,再用take指定要获取的条目数量(比如取9条,足够轮播切换展示):

// API中的代码修改
const items = await prisma.items.findMany({
  // 随机排序
  orderBy: { _rand: true },
  // 只取指定数量的条目,这里示例取9条
  take: 9
});

2. 简化前端处理逻辑

因为后端已经返回了随机筛选后的少量数据,前端无需再对全量数组做打乱操作,直接使用返回的数据即可:

// page.tsx中的主函数修改
const items = await getItems();
// 删掉 shuffleItems 相关代码,直接传items给组件
return <Items items={items} />;

为什么这样更高效?

  • 数据库层面处理随机和数量限制,比前端加载全量数据后再处理要快得多,大幅减少网络传输的数据体积
  • 避免前端因处理大量数组导致的额外性能开销

内容的提问来源于stack exchange,提问作者Andrew

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 10:20:58