diff options
author | Lauri Ojansivu <x@xet7.org> | 2017-02-22 17:14:20 +0200 |
---|---|---|
committer | Lauri Ojansivu <x@xet7.org> | 2017-02-22 17:14:20 +0200 |
commit | b4fd6b7004d7bfd315e08155c8f843fd2b29feb8 (patch) | |
tree | 46083001472636f51ea2806bb0afb26afe1f852a | |
parent | cd70076af2b0d34c2fb4a0ef52c02c8f9da28a69 (diff) | |
parent | 6ca832c02b2fa87720005f277b3fcb21dcf5ae6f (diff) | |
download | wekan-b4fd6b7004d7bfd315e08155c8f843fd2b29feb8.tar.gz wekan-b4fd6b7004d7bfd315e08155c8f843fd2b29feb8.tar.bz2 wekan-b4fd6b7004d7bfd315e08155c8f843fd2b29feb8.zip |
Merge branch 'maulal-devel' into devel
Improve Wekan performance by adding indexes to MongoDB
-rw-r--r-- | models/activities.js | 2 | ||||
-rw-r--r-- | models/boards.js | 1 | ||||
-rw-r--r-- | models/cards.js | 2 | ||||
-rw-r--r-- | models/checklists.js | 4 | ||||
-rw-r--r-- | models/unsavedEdits.js | 3 |
5 files changed, 11 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..9323d690 100644 --- a/models/boards.js +++ b/models/boards.js @@ -414,6 +414,7 @@ if (Meteor.isServer) { _id: 1, 'members.userId': 1, }, { unique: true }); + Boards._collection._ensureIndex({'members.userId': 1}); }); // 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/checklists.js b/models/checklists.js index 35be4dcc..3425f230 100644 --- a/models/checklists.js +++ b/models/checklists.js @@ -133,6 +133,10 @@ Checklists.mutations({ }); if (Meteor.isServer) { + Meteor.startup(() => { + Checklists._collection._ensureIndex({ cardId: 1, createdAt: 1 }); + }); + Checklists.after.insert((userId, doc) => { Activities.insert({ userId, 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, |