【发布时间】:2020-12-17 08:11:27
【问题描述】:
我目前在我的 Postgres 数据库中有一个大约 115k 行的表,我觉得这对于我的无服务器功能来说太慢了。我唯一需要该表的就是使用 ILIKE 之类的函数查找值,我相信网络障碍会大大减慢速度。
我的想法是把桌子变成一个javascript对象数组,因为它不会经常改变。现在我将它放在一个文件中,例如 array.ts,里面是:
export default [
{}, {}, {},...
]
查询这个庞大数组的最佳方法是什么?最好只使用 .filter 功能吗?我目前正在尝试导入数组并对其进行过滤,但它似乎只是挂起并且从未真正完成。当前的数据库方法要慢得多,所以我不确定这是否是正确的方法。
【问题讨论】:
-
115K 长度的对象数组根本不是一个好主意。管理它将是一个更大的问题,甚至比现在更糟。如果网络是你的瓶颈,你为什么不升级网络?
-
如果不确定瓶颈是网络,可以通过db工具解释查询,这样可以判断查询本身是否慢。
-
@hellikiam 如果我在本地运行查询,大约需要 50-100 毫秒,这对我的用例来说很好。问题出在云功能上,它需要大约 300 毫秒 - 500 毫秒,这比我想要的要慢。数据库存储在谷歌计算引擎上,访问是通过谷歌云功能完成的,所以我认为我无法真正升级网络。
-
1.那是网络响应时间还是数据库查询类型? 2.升级你的云计算资源也是不可能的?
-
我觉得你的计划太危险了兄弟。请不要在代码级别执行此操作,而是在其他级别执行此操作
标签: node.js arrays database performance