MySQL开发实战:三十六条军规详解

4星 · 超过85%的资源 需积分: 9 2 下载量 98 浏览量 更新于2024-07-27 收藏 1.8MB PDF 举报
"MySQL数据库开发的三十六条军规是由石展@赶集网分享的一线实战经验总结,强调了在数据库开发中应遵循的原则,旨在避免不必要的问题和提高效率。" 1. **核心军规** - **尽量不在数据库做运算**:避免在SQL语句中进行复杂的计算,因为数据库的主要任务是存储和检索数据,而非处理计算逻辑。运算应该在应用程序层面完成,以减轻数据库负担并提高性能。 - **控制单表数据量**:根据预估的年度数据量来设计表结构,避免单表数据量过大导致性能下降。纯INT类型字段不超过1000万,含CHAR类型字段不超过500万。考虑合理分表策略,如按USERID、DATE、AREA等进行分表,单库表数量建议不超过300-400个。 - **保持表身段苗条**:减少表字段数量,优化IO效率,加快全表遍历和修复速度,提高开发效率。单表字段数一般控制在20-50个,单行长度不超过200Byte,以平衡性能和存储需求。 - **平衡范式与冗余**:在设计数据库时,需要在规范化和性能之间找到平衡。在适当的情况下,可以牺牲一部分规范化,添加冗余数据,以提升查询效率,但这样可能会增加代码复杂度。 - **拒绝3B**:避免使用大型SQL(BIGSQL)、大事务(BIGTransaction)和大批量操作(BIGBatch),因为这些操作可能导致数据库性能急剧下降,尤其是在数据量不断增长时。 2. **字段类军规** - **用好数值字段类型**:正确选择数值类型,如TINYINT、SMALLINT、INT、BIGINT、FLOAT、DOUBLE和DECIMAL。注意避免不必要的精度浪费,如INT(1)与INT(11)的区别,以及BIGINT AUTO_INCREMENT和DECIMAL(18,0)的不合理使用。 - **将字符转化为数字**:对于适合存储为数值的数据,应尽量使用数值类型而非字符串类型,因为数值类型具有更高的索引效率、更快的查询速度和更小的存储空间占用。 以上军规是数据库开发中的基础准则,遵循这些原则可以有效地优化数据库性能,预防潜在的问题,并提高整体系统的稳定性和效率。在实际开发中,开发者应结合具体业务场景灵活应用,以实现最优的数据库设计。