MySQL 数据库开发规范 本文档旨在提供一份详细的 MySQL 数据库开发规范,涵盖数据库设计、命名规范、索引优化、查询优化、数据类型选择等多方面的内容。该规范旨在帮助开发者编写高效、可维护的 MySQL 代码,避免常见的错误和陷阱。 一、命名规范 1. 所有的数据库对象名称必须使用小写字母并用下划线分割。 2. 所有的数据库对象名称禁止使用 MySQL 保留关键字。 二、数据库设计 3. 临时库表必须以 tmp 为前缀并以日期为后缀。 4. 备份库和库必须以 bak 为前缀并以日期为后缀。 5. 所有存储相同数据的列名和列类型必须一致。 三、索引优化 6. mysql5.5 之前默认的存储的引擎是 myisam,没有特殊要求,所有的表必须使用 innodb。 7. 数据库和表的字符集尽量统一使用 utf8。 8. 所有表和字段都要添加注释 COMMENT,从一开始就进行数据字典的维护。 四、查询优化 9. 尽量控制单表数据量的大小在 500w 以内,超过 500w 可以使用历史数据归档,分库分表来实现。 10. 谨慎使用 mysql 分区表,谨慎选择分区键,跨分区查询效率可能更低。 11. 建议使用物理分表的方式管理大数据,尽量做到冷热数据分离,减小表的宽度。 五、数据类型选择 12. 优先选择符合存储需要的最小数据类型。 13. 优先使用无符号的整形来存储。 14. 优先选择存储最小的数据类型(varchar(N),N 代表的是字符数,而不是字节数)。 15. 避免使用 Text 或是 Blob 类型。 六、查询编写 16. 避免使用双 % 号和 like,搜索严禁左模糊或者全模糊。 17. 建议使用预编译语句进行数据库操作。 18. 禁止跨库查询,为数据迁移和分库分表留出余地,降低耦合度,降低风险。 19. 禁止 select * 查询,消耗更多的 cpu 和 io 及网络带宽资源,无法使用覆盖索引。 20. 禁止使用不含字段列表的 insert 语句。 七、其他 21. 禁止在线上做数据库压力测试。 22. 禁止从开发环境,测试环境直接连生产环境数据库。 23. 限制每张表上的索引数量,建议单表索引不超过 5 个。 24. 避免建立冗余索引和重复索引。 25. 禁止给表中的每一列都建立单独的索引。 26. 每个 innodb 表必须有一个主键,选择自增 id。 27. 区分度最高的列放在联合索引的最左侧。 28. 尽量把字段加度小的列放在联合索引的最左侧。 29. 尽量避免使用外键,禁止使用物理外键,建议使用逻辑外键。 本文档旨在为开发者提供一个详细的 MySQL 数据库开发规范,帮助开发者编写高效、可维护的 MySQL 代码,避免常见的错误和陷阱。
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/release/download_crawler_static/88593016/bg1.jpg)
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/7386ab88f5ce450e8817b9541ae085eb_caryxp.jpg!1)
- 粉丝: 1923
- 资源: 3997
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
最新资源
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)