diff options
author | maulal <maulal@none.fr> | 2017-02-18 02:18:39 +0100 |
---|---|---|
committer | Lauri Ojansivu <x@xet7.org> | 2017-02-22 17:05:30 +0200 |
commit | cd6317cedbd9815284d4e533f00fbc75c8e06afc (patch) | |
tree | fc42b8c26097a8688d5430b79d84c739ffb48387 | |
parent | cd70076af2b0d34c2fb4a0ef52c02c8f9da28a69 (diff) | |
download | wekan-cd6317cedbd9815284d4e533f00fbc75c8e06afc.tar.gz wekan-cd6317cedbd9815284d4e533f00fbc75c8e06afc.tar.bz2 wekan-cd6317cedbd9815284d4e533f00fbc75c8e06afc.zip |
Improve wekan performance #837
-rw-r--r-- | models/activities.js | 2 | ||||
-rw-r--r-- | models/boards.js | 3 | ||||
-rw-r--r-- | models/cards.js | 2 | ||||
-rw-r--r-- | models/unsavedEdits.js | 3 |
4 files changed, 9 insertions, 1 deletions
diff --git a/models/activities.js b/models/activities.js index 7d262ec6..9a41d4aa 100644 --- a/models/activities.js +++ b/models/activities.js @@ -52,6 +52,8 @@ if (Meteor.isServer) { Activities._collection._ensureIndex({ createdAt: -1 }); Activities._collection._ensureIndex({ cardId: 1, createdAt: -1 }); Activities._collection._ensureIndex({ boardId: 1, createdAt: -1 }); + Activities._collection._ensureIndex({ commentId: 1 }, { partialFilterExpression: { commentId: { $exists: true } } }); + Activities._collection._ensureIndex({ attachmentId: 1 }, { partialFilterExpression: { attachmentId: { $exists: true } } }); }); Activities.after.insert((userId, doc) => { diff --git a/models/boards.js b/models/boards.js index 14943d61..0f66e9d6 100644 --- a/models/boards.js +++ b/models/boards.js @@ -414,6 +414,9 @@ if (Meteor.isServer) { _id: 1, 'members.userId': 1, }, { unique: true }); + Boards._collection._ensureIndex({ + 'members.userId': 1, + }, { unique: true }); }); // Genesis: the first activity of the newly created board diff --git a/models/cards.js b/models/cards.js index ab735ad0..9c149e51 100644 --- a/models/cards.js +++ b/models/cards.js @@ -267,7 +267,7 @@ if (Meteor.isServer) { // Cards are often fetched within a board, so we create an index to make these // queries more efficient. Meteor.startup(() => { - Cards._collection._ensureIndex({ boardId: 1 }); + Cards._collection._ensureIndex({ boardId: 1, createdAt: -1 }); }); Cards.after.insert((userId, doc) => { diff --git a/models/unsavedEdits.js b/models/unsavedEdits.js index 25952fb5..d4f3616a 100644 --- a/models/unsavedEdits.js +++ b/models/unsavedEdits.js @@ -26,6 +26,9 @@ if (Meteor.isServer) { function isAuthor(userId, doc, fieldNames = []) { return userId === doc.userId && fieldNames.indexOf('userId') === -1; } + Meteor.startup(() => { + UnsavedEditCollection._collection._ensureIndex({ userId: 1 }); + }); UnsavedEditCollection.allow({ insert: isAuthor, update: isAuthor, |