没有合适的资源?快使用搜索试试~ 我知道了~
首页非常完整的 MySQL 规范.docx
非常完整的 MySQL 规范.docx
需积分: 33 14 下载量 35 浏览量
更新于2023-03-03
评论
收藏 32KB DOCX 举报
为MySQL项目数据库设计遵循标准化、统一化原则,便于每个开发工程师了解不同业务逻辑,同时降低bug产生量和问题排查时间。最终是的内部所有MySQL项目数据可设计条理有序,关系明确,特制订本使用规范。
资源详情
资源评论
资源推荐
完整的 MySQL 规范
一、数据库命令规范
·所有数据库对象名称必须使用小写字母并用下划线分割
·所有数据库对象名称禁止使用 mysql 保留关键字(如果表名中包含关键字查询
时,需要将其用单引号括起来)
·数据库对象的命名要能做到见名识意,并且最后不要超过 32 个字符
·临时库表必须以 tmp_为前缀并以日期为后缀,备份表必须以 bak_为前缀并以
日期(时间戳)为后缀
·所有存储相同数据的列名和列类型必须一致(一般作为关联列,如果查询时关
联列类型不一致会自动进行数据类型隐式转换,会造成列上的索 引失效,导致
查询效率降低)
二、数据库基本设计规范
1、所有表必须使用 Innodb 存储引擎
没有特殊要求(即 Innodb 无法满足的功能如:列存储,存储空间数据等)的情
况 下 , 所 有 表 必 须 使 用 Innodb 存 储 引 擎 ( mysql5.5 之 前 默 认 使 用
Myisam,5.6 以后默认的为 Innodb)Innodb 支持事务,支持行级锁,更好的
恢复性,高并发下性能更好
2、数据库和表的字符集统一使用 UTF8
兼容性更好,统一字符集可以避免由于字符集转换产生的乱码,不同的字符集
进行比较前需要进行转换会造成索引失效
3、所有表和字段都需要添加注释
使用 comment 从句添加表和列的备注 从一开始就进行数据字典的维护
4、尽量控制单表数据量的大小,建议控制在 500 万以内
500 万并不是 MySQL 数据库的限制,过大会造成修改表结构,备份,恢复都会
有很大的问题
可以用历史数据归档(应用于日志数据),分库分表(应用于业务数据)等手
段来控制数据量大小
5、谨慎使用 MySQL 分区表
分区表在物理上表现为多个文件,在逻辑上表现为一个表 谨慎选择分区键,跨
分区查询效率可能更低 建议采用物理分表的方式管理大数据
6、尽量做到冷热数据分离,减小表的宽度
MySQL 限制每个表最多存储 4096 列,并且每一行数据的大小不能超过 65535
字节 减少磁盘 IO,保证热数据的内存缓存命中率(表越宽,把表装载进内存缓
冲池时所占用的内存也就越大,也会消耗更多的 IO) 更有效的利用缓存,避免
读入无用的冷数据 经常一起使用的列放到一个表中(避免更多的关联操作)
7、禁止在表中建立预留字段
预留字段的命名很难做到见名识义 预留字段无法确认存储的数据类型,所以无
法选择合适的类型 对预留字段类型的修改,会对表进行锁定
8、禁止在数据库中存储图片,文件等大的二进制数据
通常文件很大,会短时间内造成数据量快速增长,数据库进行数据库读取时,
通常会进行大量的随机 IO 操作,文件很大时,IO 操作很耗时 通常存储于文件
服务器,数据库只存储文件地址信息
9、禁止在线上做数据库压力测试
10、禁止从开发环境,测试环境直接连接生成环境数据库
三、数据库字段设计规范
1、优先选择符合存储需要的最小的数据类型
· 原因
列的字段越大,建立索引时所需要的空间也就越大,这样一页中所能存储的索
引节点的数量也就越少也越少,在遍历时所需要的 IO 次数也就越多, 索引的性
能也就越差
· 方法
1)将字符串转换成数字类型存储,如:将 IP 地址转换成整形数据。
mysql 提供了两个方法来处理 ip 地址:
插入数据前,先用 inet_aton 把 ip 地址转为整型,可以节省空间。显示数据时,
使用 inet_ntoa 把整型的 ip 地址转为地址显示即可。
2)对于非负型的数据(如自增 ID、整型 IP)来说,要优先使用无符号整型来
存储
因为:无符号相对于有符号可以多出一倍的存储空间
VARCHAR(N)中的 N 代表的是字符数,而不是字节数
使用 UTF8 存储 255 个汉字 Varchar(255)=765 个字节。过大的长度会消耗更
多的内存
2、避免使用 TEXT、BLOB 数据类型,最常见的 TEXT 类型可以存储 64k 的数
据
·建议把 BLOB 或是 TEXT 列分离到单独的扩展表中
Mysql 内存临时表不支持 TEXT、BLOB 这样的大数据类型,如果查询中包含这
样的数据,在排序等操作时,就不能使用内存临时表,必须使用磁盘临时表进
行。
而且对于这种数据,Mysql 还是要进行二次查询,会使 sql 性能变得很差,但是
不是说一定不能使用这样的数据类型。
剩余11页未读,继续阅读
lovesais
- 粉丝: 0
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- 2023年中国辣条食品行业创新及消费需求洞察报告.pptx
- 2023年半导体行业20强品牌.pptx
- 2023年全球电力行业评论.pptx
- 2023年全球网络安全现状-劳动力资源和网络运营的全球发展新态势.pptx
- 毕业设计-基于单片机的液体密度检测系统设计.doc
- 家用清扫机器人设计.doc
- 基于VB+数据库SQL的教师信息管理系统设计与实现 计算机专业设计范文模板参考资料.pdf
- 官塘驿林场林防火(资源监管)“空天地人”四位一体监测系统方案.doc
- 基于专利语义表征的技术预见方法及其应用.docx
- 浅谈电子商务的现状及发展趋势学习总结.doc
- 基于单片机的智能仓库温湿度控制系统 (2).pdf
- 基于SSM框架知识产权管理系统 (2).pdf
- 9年终工作总结新年计划PPT模板.pptx
- Hytera海能达CH04L01 说明书.pdf
- 数据中心运维操作标准及流程.pdf
- 报告模板 -成本分析与报告培训之三.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0