# Design: 数据库优化与迁移方案 ## 优化策略 ### 表结构优化 - 规范化设计(3NF) - 消除冗余字段 - 合理设计外键 - 添加审计字段(created_at, updated_at) ### 索引优化 - 主键索引 - 唯一索引 - 复合索引(根据查询模式) - 覆盖索引 ### 迁移方案 ``` 1. 备份现有数据库 2. 创建新表结构 3. 数据转换和迁移 4. 验证数据完整性 5. 切换数据源 6. 保留回滚方案 ``` ## 数据迁移脚本 ```sql -- 1. 备份 CREATE TABLE sys_user_backup AS SELECT * FROM sys_user; -- 2. 创建新表 CREATE TABLE sys_user_v2 ( id BIGINT PRIMARY KEY, username VARCHAR(50) NOT NULL UNIQUE, -- 其他字段 created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ); -- 3. 迁移数据 INSERT INTO sys_user_v2 (id, username, ...) SELECT user_id, user_name, ... FROM sys_user; -- 4. 验证 SELECT COUNT(*) FROM sys_user; SELECT COUNT(*) FROM sys_user_v2; -- 5. 切换(重命名) RENAME TABLE sys_user TO sys_user_old, sys_user_v2 TO sys_user; -- 6. 回滚(如需要) RENAME TABLE sys_user TO sys_user_v2, sys_user_old TO sys_user; ```