去哪儿网MySQL开发规范详解

需积分: 10 4 下载量 92 浏览量 更新于2024-09-08 1 收藏 622KB PDF 举报
"去哪儿MySQL开发规范" 去哪儿网的MySQL开发规范是一套详细的数据库设计和管理准则,旨在确保数据的一致性、稳定性和高效性。以下是规范中的关键知识点: 1. **命名规范** - 所有数据库对象(库、表、字段)都应使用小写字母并采用下划线分隔,以便于阅读和理解。 - 命名长度限制:库名、表名、字段名不得超过32个字符,避免过长导致的问题。 - 命名应具有明确的含义,与业务和产品线相关,以便于理解其用途。 - 禁止使用MySQL的保留字,以免引起语法冲突。 - 临时库和表应以`tmp`为前缀,加上日期后缀,如`tmp_test01_20130704`。 - 备份库和表应以`bak`为前缀,加上日期后缀,如`bak_test01_20130704`。 2. **基础规范** - 强烈推荐使用InnoDB存储引擎,因其支持事务处理和行级锁定。 - 字符集默认使用UTF8,对于需要存储四字节字符的情况,可以申请使用UTF8MB4。 - 每张表和字段都应添加注释,以英文标点符号,防止乱码。 - 不要在数据库中存储大型文件,如图片和文档,这会增加数据库负担。 - 表数据量建议控制在5亿条以内,以保证查询效率。 - 禁止在线上环境进行数据库压力测试,以防止对生产系统造成影响。 - 开发和测试环境不能直接连接到生产数据库,以保护数据安全。 3. **库表设计** - 分区表不被推荐使用,可能会影响性能和复杂性。 - 对于大字段和低访问频率的字段,应考虑拆分到单独的表中,以分离冷热数据。 - 推荐使用散列方式来分表,表名后缀使用十进制数,从0开始,以提高查询效率。 - 日期时间分表应遵循特定格式,如`YYYY[MM][DD][HH]`,确保易于管理和查询。 - 应选择合适的分库分表策略,如千库十表、十库百表,以适应不同规模的业务需求。 4. **字段设计** - 对于非负数值,建议使用无符号整型(UNSIGNED),以提高存储效率。 - 存储IPv4地址推荐使用INT UNSIGNED,避免数据溢出问题。 - 使用DECIMAL存储需要精确计算的浮点数,比如货币和金融数据,避免FLOAT和DOUBLE的精度问题。 - INT类型的宽度固定为4字节,INT(4)只是表示显示宽度,并不影响实际存储大小。 这套规范提供了一套全面的指导原则,确保去哪儿网的MySQL数据库设计和管理的标准化,有助于提升系统的稳定性和性能。开发者和数据库管理员应当严格遵守这些规则,以确保数据库的最佳实践。