优化数据库结构 === 除了 SQL 本身,数据库结构设计也会深刻影响性能。字段设计不合理、关联过多、表过宽或过深,都会带来性能问题。 ### 将字段很多的表分解成多个表 如果一张表字段非常多,可以考虑按业务拆分为多个表。 例如: - 核心用户信息放一张表 - 扩展资料放另一张表 这样做的好处包括: - 减少单表宽度 - 提高常见查询效率 - 降低无关字段读取成本 ### 增加中间表 在多对多关系中,增加中间表通常比把多个值塞进一个字段更规范。 例如: - 用户和角色 - 学生和课程 - 文章和标签 中间表不仅更符合关系模型,也更利于查询和索引优化。 ### 增加冗余字段 某些场景下,适当增加冗余字段可以减少频繁连接查询。 例如: - 在订单表中冗余保存用户名 - 在明细表中冗余保存分类名称 当然,这种优化要权衡一致性维护成本。 ### 优化插入记录的速度 提升插入速度的常见方法包括: - 批量插入代替单条插入 - 合理控制索引数量 - 避免不必要的触发器和复杂约束 - 在合适场景中使用事务批量提交 ### 分析表、检查表和优化表 MySQL 也提供了一些表维护语句: ```sql ANALYZE TABLE user; CHECK TABLE user; OPTIMIZE TABLE user; ``` 它们分别用于: - 更新统计信息 - 检查表状态 - 整理和优化表空间 ### 小结 结构优化关注的是“表应该怎么设计”,而不是单条 SQL 怎么写。表拆分、中间表、冗余字段和维护语句,都是结构层面的常见优化手段。