为啥我从数据库中获取数据缓慢?
Posted
技术标签:
【中文标题】为啥我从数据库中获取数据缓慢?【英文标题】:Why am I getting data from the database slowly?为什么我从数据库中获取数据缓慢? 【发布时间】:2021-10-10 11:01:27 【问题描述】:我将nestjs与typeorm和postgresql一起使用,我在150-200ms内从数据库中获取数据,但是如果你等待20秒并再次向后端发送请求并获取数据,那么我在1000ms或1500ms内获取数据,虽然在理论上和一般情况下它通常应该是 150-200 毫秒?尝试使用 sequelize 结果是一样的。好像,如果你等待,服务器开始睡着了,当请求再次到达它时,它会醒来很长时间。 这是我如何请求数据库的代码:
async getProducts()
const products = await this.productRepository.find();
return products;
请提供任何想法、答案、选项
【问题讨论】:
【参考方案1】:Nestjs 不太可能在这里增加明显的延迟。您发布的代码看起来不错。
尝试移除“环境”(如移动部件中的)以了解问题的根源。例如。在main.ts中执行这个方法
提示:如果你的服务被称为MyService
,你可以像这样访问它:
const service = app.get(MyService);
另一种方法是删除请求响应中涉及的所有内容:
您的代码来自控制器 -> 服务 -> 存储库 可以拦截的代码:中间件、管道、守卫、拦截器通过将 Sequelize 切换到 TypeORM,您有点将 DB 通信层作为嫌疑人删除了,如果您的调查没有产生任何帮助,您应该考虑查看底层 DB 和指定的连接选项(如果有的话,例如池大小)。很可能导致代码应该在应用程序中。对于 Sequelize 和 TypeScript,您还可以启用日志记录以获得更好的洞察力。祝您研究顺利!
【讨论】:
以上是关于为啥我从数据库中获取数据缓慢?的主要内容,如果未能解决你的问题,请参考以下文章
为啥我没有从 ArrayList 获取 ListView 数据?