From e5b8dea9ae9591f7fe9499cb5d02d26310f60d86 Mon Sep 17 00:00:00 2001 From: Archer <545436317@qq.com> Date: Sat, 21 Dec 2024 00:01:14 +0800 Subject: [PATCH] perf: schema indexes (#3446) --- packages/service/core/chat/chatItemSchema.ts | 6 ++++++ packages/service/support/user/schema.ts | 6 ++++-- packages/service/support/wallet/usage/schema.ts | 2 +- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/packages/service/core/chat/chatItemSchema.ts b/packages/service/core/chat/chatItemSchema.ts index 237ae49c9..be569b748 100644 --- a/packages/service/core/chat/chatItemSchema.ts +++ b/packages/service/core/chat/chatItemSchema.ts @@ -98,6 +98,12 @@ try { ChatItemSchema.index({ time: -1, obj: 1 }, { background: true }); // timer, clear history ChatItemSchema.index({ teamId: 1, time: -1 }, { background: true }); + + // Admin charts + ChatItemSchema.index( + { obj: 1, time: -1 }, + { background: true, partialFilterExpression: { obj: 'Human' } } + ); } catch (error) { console.log(error); } diff --git a/packages/service/support/user/schema.ts b/packages/service/support/user/schema.ts index 6e54982ef..89b5eb58d 100644 --- a/packages/service/support/user/schema.ts +++ b/packages/service/support/user/schema.ts @@ -79,8 +79,10 @@ const UserSchema = new Schema({ try { // login - UserSchema.index({ username: 1, password: 1 }); - UserSchema.index({ createTime: -1 }); + UserSchema.index({ username: 1, password: 1 }, { background: true }); + + // Admin charts + UserSchema.index({ createTime: -1 }, { background: true }); } catch (error) { console.log(error); } diff --git a/packages/service/support/wallet/usage/schema.ts b/packages/service/support/wallet/usage/schema.ts index 9c243b4d2..1fc01fba8 100644 --- a/packages/service/support/wallet/usage/schema.ts +++ b/packages/service/support/wallet/usage/schema.ts @@ -65,7 +65,7 @@ try { // timer task. clear dead team // UsageSchema.index({ teamId: 1, time: -1 }, { background: true }); - UsageSchema.index({ time: 1 }, { expireAfterSeconds: 180 * 24 * 60 * 60 }); + UsageSchema.index({ time: 1 }, { background: true, expireAfterSeconds: 720 * 24 * 60 * 60 }); } catch (error) { console.log(error); }