MySQL开发军规:实战经验与教训

4星 · 超过85%的资源 需积分: 9 23 下载量 11 浏览量 更新于2024-07-30 收藏 1.8MB PDF 举报
"《MySQL数据库开发的三十六条军规》由石展在杭州的演讲整理,分享了数据库开发的经验和教训,旨在提供实用的数据库设计和优化指导。" 本文主要围绕MySQL数据库开发中的最佳实践,提供了36条军规,分为五个部分:核心军规、字段类军规、索引类军规、SQL类军规和约定类军规。以下是对这些军规的详细解释: 1. **核心军规** - **尽量不在数据库做运算**:避免在SQL语句中进行复杂的计算,将其移到应用程序端处理,以便充分利用CPU资源,提高数据库执行效率。 - **控制单表数据量**:根据业务需求预测单表一年内的数据量,避免单表数据过大导致性能下降。一般建议纯INT类型不超过1000万行,含CHAR类型不超过500万行。 - **保持表身材苗条**:减少表字段数量,提高I/O效率,加快全表扫描、表修复和ALTER TABLE操作。通常,单表字段数建议控制在20至50个之间。 - **平衡范式与冗余**:在遵循数据库范式原则的同时,考虑性能优化,必要时可适当牺牲范式,添加冗余字段,但需注意这会增加代码复杂度。 - **拒绝3B**:避免编写大型SQL、大事务和大批量操作,这些可能导致数据库性能瓶颈。 2. **字段类军规** - **用好数值字段类型**:选择合适的数值类型,如TINYINT、INT、FLOAT等,避免不必要的空间浪费。注意区分实际需求,如INT(1)与INT(11)的区别。 - **将字符转化为数字**:对于可以表示为数字的数据,应使用数字类型而不是字符串类型,以提高索引效率和节省存储空间。 3. **索引类军规**(部分内容未给出,可能包括创建合理的索引,避免全表扫描,以及对经常用于查询的字段建立索引等)。 4. **SQL类军规**(部分内容未给出,可能包括优化SQL语句,避免子查询,使用JOIN代替子查询,以及正确使用事务等)。 5. **约定类军规**(部分内容未给出,可能涉及数据库命名规范,代码注释,版本控制等团队协作中的最佳实践)。 这些军规旨在帮助数据库开发者避免常见的错误,提高数据库性能,并确保系统稳定性和可维护性。在实际开发中,结合业务需求灵活运用这些规则,可以有效提升数据库开发的质量和效率。