feat: 添加数据库索引优化查询性能
refactor(前端): 使用useMemo和useCallback优化性能 perf(后端): 优化统计查询性能 style: 统一前端样式定义 build: 添加创建索引脚本
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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, {
|
||||
|
||||
@@ -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, {
|
||||
|
||||
@@ -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'] }
|
||||
]
|
||||
});
|
||||
|
||||
// 关联关系
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -40,7 +40,12 @@ const Rack = sequelize.define('Rack', {
|
||||
}
|
||||
}, {
|
||||
tableName: 'racks',
|
||||
timestamps: true
|
||||
timestamps: true,
|
||||
indexes: [
|
||||
{ fields: ['roomId'] },
|
||||
{ fields: ['status'] },
|
||||
{ fields: ['roomId', 'status'] }
|
||||
]
|
||||
});
|
||||
|
||||
// 关联关系
|
||||
|
||||
@@ -33,7 +33,11 @@ const Room = sequelize.define('Room', {
|
||||
}
|
||||
}, {
|
||||
tableName: 'rooms',
|
||||
timestamps: true
|
||||
timestamps: true,
|
||||
indexes: [
|
||||
{ fields: ['status'] },
|
||||
{ fields: ['name'] }
|
||||
]
|
||||
});
|
||||
|
||||
module.exports = Room;
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user