【发布时间】:2014-10-10 22:39:43
【问题描述】:
我正在使用 Sails 框架中的一个小纸牌游戏后端 - 只是为了好玩,并了解现在的框架。
我在模型上使用集合时遇到了一个问题 - 不知道我是否用错了 - 但它真的很慢 - 不明白为什么。
简单示例:
// models / Deck.js
module.exports = {
attributes: {
game : {
model : 'game'
},
cards : {
collection : 'card'
},
},
newDeck : function(game_id, callback) {
// 52 Cards
Card.find({}).exec(function(err, results) {
Deck.create({game : game.id}).exec(function(err, deck) {
while(cards.length) {
deck.cards.add(cards.pop());
}
deck.save(function(err, deck) {
if(err) callback(err);
callback(null, deck);
});
});
}
}
当我调用 newDeck 函数时,大约需要 5 到 10 秒。完成 - 它全部在 .save() 函数中,问题是,如果我将其注释掉,它会在 1 秒内完成。
另一个例子我只删除了一条记录,这也需要大约 5-6 秒。
deck.cards.remove(card.id)
deck.save(function(err, deck){
})
我是不是做错了什么?? 我尝试在另一个示例中创建 52 条记录,这需要不到 1 秒。 - 无法弄清楚我做错了什么。
【问题讨论】:
-
我尝试清除数据库,现在保存功能只需要大约 1 秒。但是在填充了一些牌组之后——大约 20 组左右——它又变慢了!所以我的测试告诉我,更多的牌组会减慢整个系统的速度——这是有线的吗?
-
您好,您使用的是哪个数据库提供商?如果您使用的是“sails-disk”,则可能值得检查使用适当的数据库(如 mysql)是否更好,不确定您有多少数据。有关详细信息,请参阅 config/connections.js。
-
我只是在开发 - 所以我使用 Sails 附带的默认值 - 但不明白为什么添加一些关系会如此缓慢 - 这没有意义 - 我认为该表中有大约 500 行,我需要大约 5 秒。插入 52 个新行..
标签: sails.js