我正在使用sequelize来计算我的仪表板数字。目前有超过5000个用户,这个数字有望增长。对于每个用户,我必须处理大量具有大量条件/规则和多个连接的数据。
对于大约250名测试用户,sequelize需要超过25秒才能返回结果。我应该切换到存储过程以提高性能还是有办法优化续集查询?
答案 0 :(得分:1)
要回答这个问题,我们需要看一些你的模型及其关联。 但是,您必须首先尝试优化模型,因为sequelize不会创建索引,但您可以创建自己的“外键”,例如:
stored procdures
此外,sequelize在隔离操作或数字操作(如'AVG')中减慢速度,如果不将它们包含在最大的查询中,则更好的选择。
在我个人的情况下(可能不是更好的方法),对于大量记录,我更喜欢[2, [23]]
并生成我自己的索引来执行具有更好性能的最大查询。
另外,如您所知node.js是单线程,那么您必须优化服务器端的操作。
总之,如果您在查询中使用隔离操作或数学操作,我的推荐是“使用存储过程”。