feat: 添加数据库索引优化查询性能

refactor(前端): 使用useMemo和useCallback优化性能
perf(后端): 优化统计查询性能
style: 统一前端样式定义
build: 添加创建索引脚本
This commit is contained in:
zhang1106
2026-01-20 14:31:20 +08:00
parent 88e000a41a
commit a2f0032bad
25 changed files with 803 additions and 701 deletions
+6 -1
View File
@@ -57,7 +57,12 @@ const Consumable = sequelize.define('Consumable', {
}
}, {
tableName: 'consumables',
timestamps: true
timestamps: true,
indexes: [
{ fields: ['category'] },
{ fields: ['status'] },
{ fields: ['category', 'status'] }
]
});
module.exports = Consumable;
+7 -1
View File
@@ -57,7 +57,13 @@ const ConsumableLog = sequelize.define('ConsumableLog', {
}, {
tableName: 'consumable_logs',
timestamps: true,
comment: '耗材操作日志表'
comment: '耗材操作日志表',
indexes: [
{ fields: ['consumableId'] },
{ fields: ['operationType'] },
{ fields: ['createdAt'] },
{ fields: ['consumableId', 'createdAt'] }
]
});
ConsumableLog.belongsTo(Consumable, {
+6 -1
View File
@@ -49,7 +49,12 @@ const ConsumableRecord = sequelize.define('ConsumableRecord', {
}
}, {
tableName: 'consumable_records',
timestamps: true
timestamps: true,
indexes: [
{ fields: ['consumableId'] },
{ fields: ['type'] },
{ fields: ['createdAt'] }
]
});
ConsumableRecord.belongsTo(Consumable, {
+9 -1
View File
@@ -72,7 +72,15 @@ const Device = sequelize.define('Device', {
}
}, {
tableName: 'devices',
timestamps: true
timestamps: true,
indexes: [
{ fields: ['status'] },
{ fields: ['type'] },
{ fields: ['rackId'] },
{ fields: ['createdAt'] },
{ fields: ['status', 'type'] },
{ fields: ['name'] }
]
});
// 关联关系
+7 -1
View File
@@ -51,7 +51,13 @@ const LoginHistory = sequelize.define('LoginHistory', {
tableName: 'login_histories',
timestamps: true,
createdAt: 'loginTime',
updatedAt: false
updatedAt: false,
indexes: [
{ fields: ['userId'] },
{ fields: ['loginTime'] },
{ fields: ['loginType'] },
{ fields: ['userId', 'loginTime'] }
]
});
module.exports = LoginHistory;
+8 -1
View File
@@ -76,7 +76,14 @@ const OperationLog = sequelize.define('OperationLog', {
tableName: 'operation_logs',
timestamps: true,
createdAt: 'operateTime',
updatedAt: false
updatedAt: false,
indexes: [
{ fields: ['userId'] },
{ fields: ['action'] },
{ fields: ['module'] },
{ fields: ['createdAt'] },
{ fields: ['userId', 'createdAt'] }
]
});
module.exports = OperationLog;
+6 -1
View File
@@ -40,7 +40,12 @@ const Rack = sequelize.define('Rack', {
}
}, {
tableName: 'racks',
timestamps: true
timestamps: true,
indexes: [
{ fields: ['roomId'] },
{ fields: ['status'] },
{ fields: ['roomId', 'status'] }
]
});
// 关联关系
+5 -1
View File
@@ -33,7 +33,11 @@ const Room = sequelize.define('Room', {
}
}, {
tableName: 'rooms',
timestamps: true
timestamps: true,
indexes: [
{ fields: ['status'] },
{ fields: ['name'] }
]
});
module.exports = Room;
+6 -1
View File
@@ -57,7 +57,12 @@ const User = sequelize.define('User', {
}
}, {
tableName: 'users',
timestamps: true
timestamps: true,
indexes: [
{ fields: ['status'] },
{ fields: ['username'] },
{ fields: ['email'] }
]
});
module.exports = User;