Files
tjt_czjs_backend/doc/数据库设计.md
2026-01-19 18:54:03 +08:00

20 KiB
Raw Permalink Blame History

Lyzsys 数据库设计文档

📖 目录


数据库概述

技术选型

特性 说明
数据库 MySQL 5.7+ / 8.0+
字符集 utf8mb4
排序规则 utf8mb4_unicode_ci
引擎 InnoDB
时区 Asia/Shanghai

支持的数据库

  • MySQL 5.7、8.0+
  • PostgreSQL 9.6+ | Oracle 11g+ | SQL Server 2012+ | H2 2.x (开发测试)

数据库特点

  1. 多数据库支持: 通过 MyBatis Plus 实现
  2. 租户隔离: 支持多租户数据隔离
  3. 逻辑删除: 支持软删除
  4. 数据权限: 支持行级数据权限
  5. 审计日志: 完整的创建、更新日志

设计规范

命名规范

数据库命名

  • 格式: lyzsys
  • 示例: lyzsys

表命名

  • 格式: {模块}_{业务}_{实体}
  • 规则: 小写字母 + 下划线
  • 示例:
    • system_users - 系统用户表
    • system_roles - 系统角色表
    • mall_orders - 商城订单表
    • bpm_process_instance - 工作流实例表

字段命名

  • 格式: 小写字母 + 下划线
  • 规则: 使用有意义的单词组合
  • 示例:
    • user_id - 用户 ID
    • user_name - 用户名
    • create_time - 创建时间
    • update_time - 更新时间

索引命名

  • 主键索引: PRIMARY
  • 唯一索引: uniq_{字段名}
  • 普通索引: idx_{字段名}
  • 示例:
    • uniq_username - 用户名唯一索引
    • idx_dept_id - 部门 ID 普通索引

字段类型

整数类型

类型 字节 范围 用途
TINYINT 1 -128 ~ 127 状态、标识
SMALLINT 2 -32768 ~ 32767 枚举值
INT 4 -21亿 ~ 21亿 数量、序号
BIGINT 8 极大数值 主键、外键

字符串类型

类型 长度 用途
CHAR 0-255 固定长度字符串
VARCHAR 0-65535 变长字符串
TEXT 0-65535 长文本
LONGTEXT 0-4294967295 超长文本

日期时间类型

类型 格式 用途
DATE YYYY-MM-DD 日期
DATETIME YYYY-MM-DD HH:MM:SS 日期时间
TIMESTAMP 时间戳 时间戳

小数类型

类型 用途
DECIMAL(M,D) 金额、精度数值

通用字段

每张表都包含以下通用字段:

-- 主键
id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键'

-- 创建信息
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间'
creator VARCHAR(64) COMMENT '创建人'

-- 更新信息
update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
updater VARCHAR(64) COMMENT '更新人'

-- 删除标记
deleted BIT NOT NULL DEFAULT FALSE COMMENT '是否删除'

-- 租户 ID (多租户表)
tenant_id BIGINT NOT NULL COMMENT '租户 ID'

核心表设计

系统管理模块

1. 用户表 (system_users)

CREATE TABLE `system_users` (
  `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '用户ID',
  `username` VARCHAR(30) NOT NULL COMMENT '用户账号',
  `password` VARCHAR(100) NOT NULL COMMENT '密码',
  `nickname` VARCHAR(30) NOT NULL COMMENT '用户昵称',
  `remark` VARCHAR(500) COMMENT '备注',
  `dept_id` BIGINT NOT NULL COMMENT '部门ID',
  `post_ids` VARCHAR(255) COMMENT '岗位编号数组',
  `email` VARCHAR(50) COMMENT '用户邮箱',
  `mobile` VARCHAR(11) COMMENT '手机号码',
  `sex` TINYINT COMMENT '用户性别',
  `avatar` VARCHAR(100) COMMENT '头像地址',
  `status` TINYINT NOT NULL DEFAULT 0 COMMENT '帐号状态0正常 1停用',
  `login_ip` VARCHAR(50) COMMENT '最后登录IP',
  `login_date` DATETIME COMMENT '最后登录时间',
  `tenant_id` BIGINT NOT NULL COMMENT '租户 ID',
  `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `creator` VARCHAR(64) COMMENT '创建人',
  `updater` VARCHAR(64) COMMENT '更新人',
  `deleted` BIT NOT NULL DEFAULT FALSE COMMENT '是否删除',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uniq_username` (`username`, `update_time`, `tenant_id`, `deleted`)
) ENGINE=InnoDB COMMENT='用户信息表';

2. 角色表 (system_roles)

CREATE TABLE `system_roles` (
  `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '角色ID',
  `name` VARCHAR(30) NOT NULL COMMENT '角色名称',
  `code` VARCHAR(100) NOT NULL COMMENT '角色权限字符串',
  `sort` INT NOT NULL COMMENT '显示顺序',
  `data_scope` TINYINT NOT NULL DEFAULT 1 COMMENT '数据范围1全部数据权限 2本部门及以下数据权限 3本部门数据权限 4仅本人数据权限',
  `data_scope_dept_ids` VARCHAR(500) COMMENT '数据范围-部门数组',
  `status` TINYINT NOT NULL COMMENT '角色状态0正常 1停用',
  `type` TINYINT NOT NULL COMMENT '角色类型1系统内置 2自定义',
  `remark` VARCHAR(500) COMMENT '备注',
  `tenant_id` BIGINT NOT NULL COMMENT '租户 ID',
  `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `creator` VARCHAR(64) COMMENT '创建人',
  `updater` VARCHAR(64) COMMENT '更新人',
  `deleted` BIT NOT NULL DEFAULT FALSE COMMENT '是否删除',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB COMMENT='角色信息表';

3. 菜单表 (system_menu)

CREATE TABLE `system_menu` (
  `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '菜单ID',
  `name` VARCHAR(50) NOT NULL COMMENT '菜单名称',
  `permission` VARCHAR(100) NOT NULL COMMENT '权限标识',
  `type` TINYINT NOT NULL COMMENT '菜单类型1目录 2菜单 3按钮',
  `sort` INT NOT NULL DEFAULT 0 COMMENT '显示顺序',
  `parent_id` BIGINT NOT NULL DEFAULT 0 COMMENT '父菜单ID',
  `path` VARCHAR(200) COMMENT '路由地址',
  `icon` VARCHAR(100) COMMENT '菜单图标',
  `component` VARCHAR(255) COMMENT '组件路径',
  `component_name` VARCHAR(255) COMMENT '组件名',
  `status` TINYINT NOT NULL DEFAULT 0 COMMENT '菜单状态0正常 1停用',
  `visible` BIT NOT NULL DEFAULT TRUE COMMENT '是否可见',
  `keep_alive` BIT NOT NULL DEFAULT FALSE COMMENT '是否缓存',
  `always_show` BIT NOT NULL DEFAULT FALSE COMMENT '是否总是显示',
  `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `creator` VARCHAR(64) COMMENT '创建人',
  `updater` VARCHAR(64) COMMENT '更新人',
  `deleted` BIT NOT NULL DEFAULT FALSE COMMENT '是否删除',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB COMMENT='菜单权限表';

4. 部门表 (system_dept)

CREATE TABLE `system_dept` (
  `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '部门id',
  `parent_id` BIGINT NOT NULL DEFAULT 0 COMMENT '父部门id',
  `name` VARCHAR(30) NOT NULL COMMENT '部门名称',
  `sort` INT NOT NULL DEFAULT 0 COMMENT '显示顺序',
  `leader_user_id` BIGINT COMMENT '负责人',
  `phone` VARCHAR(11) COMMENT '联系电话',
  `email` VARCHAR(64) COMMENT '邮箱',
  `status` TINYINT NOT NULL COMMENT '部门状态0正常 1停用',
  `tenant_id` BIGINT NOT NULL COMMENT '租户 ID',
  `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `creator` VARCHAR(64) COMMENT '创建人',
  `updater` VARCHAR(64) COMMENT '更新人',
  `deleted` BIT NOT NULL DEFAULT FALSE COMMENT '是否删除',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB COMMENT='部门表';

5. 字典表 (system_dict_type)

CREATE TABLE `system_dict_type` (
  `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '字典主键',
  `name` VARCHAR(100) NOT NULL COMMENT '字典名称',
  `type` VARCHAR(100) NOT NULL COMMENT '字典类型',
  `status` TINYINT NOT NULL DEFAULT 0 COMMENT '状态0正常 1停用',
  `remark` VARCHAR(500) COMMENT '备注',
  `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `creator` VARCHAR(64) COMMENT '创建人',
  `updater` VARCHAR(64) COMMENT '更新人',
  `deleted` BIT NOT NULL DEFAULT FALSE COMMENT '是否删除',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uniq_type` (`type`, `update_time`, `deleted`)
) ENGINE=InnoDB COMMENT='字典类型表';

基础设施模块

6. 代码生成表 (infra_codegen_column)

CREATE TABLE `infra_codegen_column` (
  `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '编号',
  `table_id` BIGINT NOT NULL COMMENT '表编号',
  `column_name` VARCHAR(200) NOT NULL COMMENT '字段名',
  `data_type` VARCHAR(100) NOT NULL COMMENT '字段类型',
  `column_comment` VARCHAR(500) COMMENT '字段描述',
  `nullable` BIT NOT NULL COMMENT '是否允许为空',
  `pk` BIT NOT NULL COMMENT '是否主键',
  `ordinal_position` INT NOT NULL COMMENT '排序',
  `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `creator` VARCHAR(64) COMMENT '创建人',
  `updater` VARCHAR(64) COMMENT '更新人',
  `deleted` BIT NOT NULL DEFAULT FALSE COMMENT '是否删除',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB COMMENT='代码生成字段表';

7. 定时任务表 (infra_job)

CREATE TABLE `infra_job` (
  `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '任务ID',
  `name` VARCHAR(200) NOT NULL COMMENT '任务名称',
  `status` TINYINT NOT NULL COMMENT '任务状态',
  `handler_name` VARCHAR(200) NOT NULL COMMENT '处理器的名字',
  `handler_param` VARCHAR(500) COMMENT '处理器的参数',
  `cron_expression` VARCHAR(100) NOT NULL COMMENT 'Cron 表达式',
  `retry_count` INT NOT NULL DEFAULT 0 COMMENT '重试次数',
  `retry_interval` INT NOT NULL DEFAULT 0 COMMENT '重试间隔',
  `monitor_timeout` INT NOT NULL DEFAULT 0 COMMENT '监控超时时间',
  `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `creator` VARCHAR(64) COMMENT '创建人',
  `updater` VARCHAR(64) COMMENT '更新人',
  `deleted` BIT NOT NULL DEFAULT FALSE COMMENT '是否删除',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB COMMENT='定时任务表';

工作流模块

8. 流程实例表 (bpm_process_instance)

CREATE TABLE `bpm_process_instance` (
  `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '编号',
  `process_definition_id` VARCHAR(64) NOT NULL COMMENT '流程定义的编号',
  `process_instance_id` VARCHAR(64) NOT NULL COMMENT '流程实例的编号',
  `start_user_id` BIGINT NOT NULL COMMENT '发起人的用户编号',
  `name` VARCHAR(255) COMMENT '流程实例的名字',
  `business_key` VARCHAR(64) COMMENT '业务标识',
  `status` TINYINT NOT NULL COMMENT '流程实例的状态',
  `tenant_id` BIGINT NOT NULL COMMENT '租户 ID',
  `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `creator` VARCHAR(64) COMMENT '创建人',
  `updater` VARCHAR(64) COMMENT '更新人',
  `deleted` BIT NOT NULL DEFAULT FALSE COMMENT '是否删除',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB COMMENT='流程实例表';

商城模块

9. 商品表 (mall_product)

CREATE TABLE `mall_product` (
  `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '商品编号',
  `name` VARCHAR(200) NOT NULL COMMENT '商品名称',
  `sell_point` VARCHAR(500) COMMENT '卖点',
  `description` VARCHAR(2000) COMMENT '商品详情',
  `category_id` BIGINT NOT NULL COMMENT '分类编号',
  `brand_id` BIGINT COMMENT '品牌编号',
  `price` BIGINT NOT NULL COMMENT '价格,单位:分',
  `stock` INT NOT NULL COMMENT '库存',
  `pic_url` VARCHAR(500) COMMENT '商品主图',
  `status` TINYINT NOT NULL COMMENT '商品状态',
  `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `creator` VARCHAR(64) COMMENT '创建人',
  `updater` VARCHAR(64) COMMENT '更新人',
  `deleted` BIT NOT NULL DEFAULT FALSE COMMENT '是否删除',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB COMMENT='商品表';

10. 订单表 (mall_order)

CREATE TABLE `mall_order` (
  `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '订单编号',
  `user_id` BIGINT NOT NULL COMMENT '用户编号',
  `order_no` VARCHAR(64) NOT NULL COMMENT '订单号',
  `total_price` BIGINT NOT NULL COMMENT '订单总价,单位:分',
  `status` TINYINT NOT NULL COMMENT '订单状态',
  `pay_time` DATETIME COMMENT '付款时间',
  `delivery_time` DATETIME COMMENT '发货时间',
  `receiver_time` DATETIME COMMENT '收货时间',
  `comment_time` DATETIME COMMENT '评论时间',
  `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `creator` VARCHAR(64) COMMENT '创建人',
  `updater` VARCHAR(64) COMMENT '更新人',
  `deleted` BIT NOT NULL DEFAULT FALSE COMMENT '是否删除',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uniq_order_no` (`order_no`)
) ENGINE=InnoDB COMMENT='订单表';

索引设计

索引类型

1. 主键索引 (PRIMARY KEY)

每张表都有主键索引:

PRIMARY KEY (`id`)

2. 唯一索引 (UNIQUE)

用于保证字段的唯一性:

UNIQUE KEY `uniq_username` (`username`, `update_time`, `tenant_id`, `deleted`)

3. 普通索引 (INDEX)

用于提升查询性能:

KEY `idx_dept_id` (`dept_id`)

4. 联合索引

用于多字段查询:

KEY `idx_user_id_status` (`user_id`, `status`)

索引规范

  1. 主键索引: 使用自增 BIGINT
  2. 唯一索引: 业务唯一字段
  3. 普通索引: 频繁查询的字段
  4. 联合索引: 多字段组合查询,遵循最左前缀原则
  5. 索引数量: 单表索引不超过 5 个

索引示例

-- 用户表索引
PRIMARY KEY (`id`)
UNIQUE KEY `uniq_username` (`username`, `update_time`, `tenant_id`, `deleted`)
KEY `idx_dept_id` (`dept_id`)
KEY `idx_status` (`status`)

-- 订单表索引
PRIMARY KEY (`id`)
UNIQUE KEY `uniq_order_no` (`order_no`)
KEY `idx_user_id` (`user_id`)
KEY `idx_status` (`status`)
KEY `idx_create_time` (`create_time`)

数据字典

通用数据字典

1. 用户性别 (system_user_sex)

字典值 字典标签 颜色
1 blue
2 pink
3 未知 gray

2. 用户状态 (system_common_status)

字典值 字典标签 颜色
0 启用 success
1 停用 danger

3. 菜单类型 (system_menu_type)

字典值 字典标签 颜色
1 目录
2 菜单
3 按钮

4. 数据范围 (system_data_scope)

字典值 字典标签
1 全部数据权限
2 本部门及以下数据权限
3 本部门数据权限
4 仅本人数据权限

5. 流程实例状态 (bpm_process_instance_status)

字典值 字典标签 颜色
1 进行中 primary
2 已结束 success

多租户设计

租户隔离策略

1. 共享数据库、共享 Schema

所有租户共享同一个数据库,通过 tenant_id 字段隔离。

2. 自动过滤

MyBatis Plus 拦截器自动添加租户条件:

// 查询时自动添加租户条件
List<UserDO> users = userMapper.selectList();

// 实际 SQL
SELECT * FROM system_users
WHERE deleted = 0
  AND tenant_id = 1

租户表设计

租户表 (system_tenant)

CREATE TABLE `system_tenant` (
  `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '租户编号',
  `name` VARCHAR(30) NOT NULL COMMENT '租户名',
  `contact_user_id` BIGINT NOT NULL COMMENT '联系人的用户编号',
  `contact_name` VARCHAR(30) NOT NULL COMMENT '联系人',
  `contact_mobile` VARCHAR(11) COMMENT '联系手机',
  `status` TINYINT NOT NULL COMMENT '租户状态',
  `website` VARCHAR(256) COMMENT '绑定域名',
  `package_id` BIGINT NOT NULL COMMENT '租户套餐编号',
  `expire_time` DATETIME NOT NULL COMMENT '过期时间',
  `account_count` INT NOT NULL COMMENT '账号数量',
  `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `creator` VARCHAR(64) COMMENT '创建人',
  `updater` VARCHAR(64) COMMENT '更新人',
  `deleted` BIT NOT NULL DEFAULT FALSE COMMENT '是否删除',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB COMMENT='租户表';

租户套餐表 (system_tenant_package)

CREATE TABLE `system_tenant_package` (
  `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '套餐编号',
  `name` VARCHAR(30) NOT NULL COMMENT '套餐名',
  `status` TINYINT NOT NULL COMMENT '套餐状态',
  `remark` VARCHAR(500) COMMENT '备注',
  `menu_ids` VARCHAR(500) NOT NULL COMMENT '关联的菜单编号',
  `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `creator` VARCHAR(64) COMMENT '创建人',
  `updater` VARCHAR(64) COMMENT '更新人',
  `deleted` BIT NOT NULL DEFAULT FALSE COMMENT '是否删除',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB COMMENT='租户套餐表';

数据库优化

SQL 优化

1. 避免全表扫描

-- 不推荐
SELECT * FROM system_users

-- 推荐
SELECT id, username, nickname FROM system_users

2. 使用索引

-- 不推荐
SELECT * FROM system_users WHERE SUBSTRING(username, 1, 3) = 'adm'

-- 推荐
SELECT * FROM system_users WHERE username LIKE 'adm%'

3. 分页查询

-- 使用分页插件
SELECT * FROM system_users
LIMIT 10 OFFSET 0

表结构优化

1. 字段类型选择

-- 不推荐
VARCHAR(1000) -- 过长

-- 推荐
VARCHAR(200)  -- 合理长度

2. 字段数量控制

单表字段数量不超过 50 个。

3. 表分区

大表可以采用分区策略:

-- 按时间分区
CREATE TABLE `system_operate_log` (
  `id` BIGINT NOT NULL AUTO_INCREMENT,
  `create_time` DATETIME NOT NULL,
  PRIMARY KEY (`id`, `create_time`)
) ENGINE=InnoDB
PARTITION BY RANGE (TO_DAYS(create_time)) (
  PARTITION p202301 VALUES LESS THAN (TO_DAYS('2023-02-01')),
  PARTITION p202302 VALUES LESS THAN (TO_DAYS('2023-03-01'))
);

数据库管理

数据库备份

1. 逻辑备份

# 备份
mysqldump -u root -p lyzsys > lyzsys_backup.sql

# 恢复
mysql -u root -p lyzsys < lyzsys_backup.sql

2. 物理备份

# 复制数据文件
cp -r /var/lib/mysql/lyzsys /backup/lyzsys

数据库监控

1. 慢查询日志

-- 开启慢查询日志
SET GLOBAL slow_query_log = 'ON';
SET GLOBAL long_query_time = 2;

2. 性能监控

-- 查看连接数
SHOW PROCESSLIST;

-- 查看状态
SHOW STATUS;

数据库维护

1. 表优化

-- 优化表
OPTIMIZE TABLE system_users;

-- 分析表
ANALYZE TABLE system_users;

-- 修复表
REPAIR TABLE system_users;

2. 索引优化

-- 查看索引使用情况
SHOW INDEX FROM system_users;

-- 删除无用索引
DROP INDEX idx_unused ON system_users;

文档版本: v1.0.0 最后更新: 2025-01-19 维护团队: Lyzsys 数据库团队