MySQL数据库开发三十六条军规

需积分: 9 2 下载量 171 浏览量 更新于2024-07-26 收藏 1.8MB PDF 举报
“mysql36条军规”是关于MySQL数据库开发的经验总结,由数据库专家石展@赶集分享。这些军规旨在帮助开发者避免常见的错误,提高数据库性能和稳定性。 ### 核心军规 1. **尽量不在数据库做运算**:数据库的主要职责是存储和检索数据,而不是进行复杂的计算。复杂的运算应在应用程序中处理,利用CPU的计算能力,以减轻数据库的压力,提高整体系统性能。 2. **控制单表数据量**:根据一年内数据量预估,纯INT字段不应超过1000万行,含CHAR字段不超过500万行。当数据量过大时,应考虑分表策略,如按USERID、DATE、AREA等进行分片。 3. **保持表身段苗条**:减少表字段数量,优化IO效率,加快全表遍历和修复速度,简化开发,快速执行ALTER TABLE操作。一般建议单表字段数控制在20~50个之间,单行大小不超过200Byte,纯INT字段不超过50个,CHAR(10)字段不超过20个。 4. **平衡范式与冗余**:在设计数据库时,需要权衡规范化和性能。过度规范化可能导致查询效率下降,适当冗余可以提高性能,但会增加代码复杂度。需要根据实际情况灵活调整。 5. **拒绝3B**:避免使用大SQL、大事务和大批量操作,因为它们会导致数据库性能瓶颈,随着数据量的增长,问题会更加突出。 ### 字段类军规 1. **用好数值字段类型**:了解并正确使用TINYINT到BIGINT等不同数值类型,避免无意义的字段宽度设置,如INT(1)和INT(11)的区别,以及避免不必要的大整数自增和大精度浮点或定点数(如BIGINT AUTO_INCREMENT和DECIMAL(18,0))。 2. **将字符转化为数字**:如果可能,使用数字类型而非字符串类型作为索引,因为数字类型的索引在查询速度、空间占用上通常更具优势。 ### 索引类军规 这部分未提供具体内容,但通常包括选择正确的索引类型(如B-TREE、HASH)、避免过多的全表扫描、合理创建复合索引、定期分析和优化索引等。 ### SQL类军规 这部分可能涵盖避免使用子查询、优化JOIN操作、减少不必要的SELECT *、使用EXPLAIN分析查询计划、避免在WHERE子句中使用NOT IN和OR等。 ### 约定类军规 这部分可能涉及命名规范、注释标准、代码审查流程、版本控制和文档编写等最佳实践。 “mysql36条军规”是一套实用的数据库开发准则,旨在帮助开发者构建高效、稳定且易于维护的MySQL数据库系统。遵循这些军规,可以在项目初期避免许多潜在问题,提高系统的可扩展性和可靠性。