-- Novalon管理系统索引优化脚本 -- 版本: V3 -- 描述: 为表创建必要的索引以提升查询性能 -- ============================================ -- 用户与角色表索引 -- ============================================ -- 用户表索引 CREATE INDEX IF NOT EXISTS idx_users_username ON sys_user(username); CREATE INDEX IF NOT EXISTS idx_users_email ON sys_user(email); CREATE INDEX IF NOT EXISTS idx_users_status ON sys_user(status); CREATE INDEX IF NOT EXISTS idx_users_deleted_at ON sys_user(deleted_at); -- 角色表索引 CREATE INDEX IF NOT EXISTS idx_roles_role_key ON sys_role(role_key); CREATE INDEX IF NOT EXISTS idx_roles_status ON sys_role(status); CREATE INDEX IF NOT EXISTS idx_roles_deleted_at ON sys_role(deleted_at); -- 用户角色关联表索引 CREATE INDEX IF NOT EXISTS idx_user_role_user_id ON user_role(user_id); CREATE INDEX IF NOT EXISTS idx_user_role_role_id ON user_role(role_id); -- ============================================ -- 权限表索引 -- ============================================ -- 权限表索引 CREATE INDEX IF NOT EXISTS idx_permission_code ON sys_permission(permission_code); CREATE INDEX IF NOT EXISTS idx_permission_resource ON sys_permission(resource); CREATE INDEX IF NOT EXISTS idx_permission_status ON sys_permission(status); -- 角色权限关联表索引 CREATE INDEX IF NOT EXISTS idx_role_permission_role_id ON sys_role_permission(role_id); CREATE INDEX IF NOT EXISTS idx_role_permission_permission_id ON sys_role_permission(permission_id); -- ============================================ -- 菜单表索引 -- ============================================ CREATE INDEX IF NOT EXISTS idx_sys_menu_parent_id ON sys_menu(parent_id); CREATE INDEX IF NOT EXISTS idx_sys_menu_status ON sys_menu(status); CREATE INDEX IF NOT EXISTS idx_sys_menu_deleted_at ON sys_menu(deleted_at); -- ============================================ -- 字典表索引 -- ============================================ -- 字典类型表索引 CREATE INDEX IF NOT EXISTS idx_sys_dict_type_dict_type ON sys_dict_type(dict_type); CREATE INDEX IF NOT EXISTS idx_sys_dict_type_status ON sys_dict_type(status); CREATE INDEX IF NOT EXISTS idx_sys_dict_type_deleted_at ON sys_dict_type(deleted_at); -- 字典数据表索引 CREATE INDEX IF NOT EXISTS idx_sys_dict_data_dict_type ON sys_dict_data(dict_type); CREATE INDEX IF NOT EXISTS idx_sys_dict_data_dict_value ON sys_dict_data(dict_value); CREATE INDEX IF NOT EXISTS idx_sys_dict_data_status ON sys_dict_data(status); CREATE INDEX IF NOT EXISTS idx_sys_dict_data_deleted_at ON sys_dict_data(deleted_at); -- 通用字典表索引 CREATE INDEX IF NOT EXISTS idx_sys_dictionary_type ON sys_dictionary(type); CREATE INDEX IF NOT EXISTS idx_sys_dictionary_type_code ON sys_dictionary(type, code); CREATE INDEX IF NOT EXISTS idx_sys_dictionary_deleted_at ON sys_dictionary(deleted_at); -- ============================================ -- 系统配置表索引 -- ============================================ CREATE INDEX IF NOT EXISTS idx_sys_config_config_key ON sys_config(config_key); CREATE INDEX IF NOT EXISTS idx_sys_config_config_type ON sys_config(config_type); CREATE INDEX IF NOT EXISTS idx_sys_config_deleted_at ON sys_config(deleted_at); -- ============================================ -- 日志表索引 -- ============================================ -- 登录日志表索引 CREATE INDEX IF NOT EXISTS idx_sys_login_log_username ON sys_login_log(username); CREATE INDEX IF NOT EXISTS idx_sys_login_log_ip ON sys_login_log(ip); CREATE INDEX IF NOT EXISTS idx_sys_login_log_status ON sys_login_log(status); CREATE INDEX IF NOT EXISTS idx_sys_login_log_login_time ON sys_login_log(login_time); -- 异常日志表索引 CREATE INDEX IF NOT EXISTS idx_sys_exception_log_username ON sys_exception_log(username); CREATE INDEX IF NOT EXISTS idx_sys_exception_log_exception_name ON sys_exception_log(exception_name); CREATE INDEX IF NOT EXISTS idx_sys_exception_log_create_time ON sys_exception_log(create_time); -- 操作日志表索引 CREATE INDEX IF NOT EXISTS idx_operation_log_username ON operation_log(username); CREATE INDEX IF NOT EXISTS idx_operation_log_operation ON operation_log(operation); CREATE INDEX IF NOT EXISTS idx_operation_log_created_at ON operation_log(created_at); CREATE INDEX IF NOT EXISTS idx_operation_log_status ON operation_log(status); CREATE INDEX IF NOT EXISTS idx_operation_log_deleted_at ON operation_log(deleted_at); -- 审计日志表索引 CREATE INDEX IF NOT EXISTS idx_audit_log_entity_type ON audit_log(entity_type); CREATE INDEX IF NOT EXISTS idx_audit_log_entity_id ON audit_log(entity_id); CREATE INDEX IF NOT EXISTS idx_audit_log_operation_type ON audit_log(operation_type); CREATE INDEX IF NOT EXISTS idx_audit_log_operator ON audit_log(operator); CREATE INDEX IF NOT EXISTS idx_audit_log_operation_time ON audit_log(operation_time); CREATE INDEX IF NOT EXISTS idx_audit_log_entity ON audit_log(entity_type, entity_id); -- 审计日志归档表索引 CREATE INDEX IF NOT EXISTS idx_audit_log_archive_entity_type ON audit_log_archive(entity_type); CREATE INDEX IF NOT EXISTS idx_audit_log_archive_entity_id ON audit_log_archive(entity_id); CREATE INDEX IF NOT EXISTS idx_audit_log_archive_operation_type ON audit_log_archive(operation_type); CREATE INDEX IF NOT EXISTS idx_audit_log_archive_operator ON audit_log_archive(operator); CREATE INDEX IF NOT EXISTS idx_audit_log_archive_operation_time ON audit_log_archive(operation_time); CREATE INDEX IF NOT EXISTS idx_audit_log_archive_archived_at ON audit_log_archive(archived_at); -- ============================================ -- 通知与消息表索引 -- ============================================ -- 系统公告表索引 CREATE INDEX IF NOT EXISTS idx_sys_notice_notice_type ON sys_notice(notice_type); CREATE INDEX IF NOT EXISTS idx_sys_notice_status ON sys_notice(status); CREATE INDEX IF NOT EXISTS idx_sys_notice_deleted_at ON sys_notice(deleted_at); -- 用户消息表索引 CREATE INDEX IF NOT EXISTS idx_sys_user_message_user_id ON sys_user_message(user_id); CREATE INDEX IF NOT EXISTS idx_sys_user_message_notice_id ON sys_user_message(notice_id); CREATE INDEX IF NOT EXISTS idx_sys_user_message_is_read ON sys_user_message(is_read); CREATE INDEX IF NOT EXISTS idx_sys_user_message_deleted_at ON sys_user_message(deleted_at); -- ============================================ -- 文件管理表索引 -- ============================================ CREATE INDEX IF NOT EXISTS idx_sys_file_file_type ON sys_file(file_type); CREATE INDEX IF NOT EXISTS idx_sys_file_deleted_at ON sys_file(deleted_at); -- ============================================ -- OAuth2客户端表索引 -- ============================================ CREATE INDEX IF NOT EXISTS idx_oauth2_client_client_id ON oauth2_client(client_id); CREATE INDEX IF NOT EXISTS idx_oauth2_client_enabled ON oauth2_client(enabled); CREATE INDEX IF NOT EXISTS idx_oauth2_client_deleted_at ON oauth2_client(deleted_at);