• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

MySQL 数据库铁律(小结)

mysql 搞代码 4年前 (2022-01-09) 17次浏览 已收录 0个评论

好的数据库规范有助于减少软件实现的复杂度,降低沟通成本,本铁律主要涵盖了建库建表、建索引、写 SQL、ORM 映射等方面的处理约定。

1.建库铁律

铁律Level备注
字符集使用 utf-8。如果存储的是表情则选用 utf8mb4 进行存储。强制
排序规则使用 utf8_general_ci强制

2.建表铁律

铁律Level备注
注释一定要有字段注释。强制
编码使用 utf-8。如果存储的是表情则选用 utf8mb4 进行存储。强制
是否概念的字段必须用 is_xx 命名,数据类型是 unsigned tinyint(1是0否)例如 is_deleted(1删除0未删除)。强制任何字段如果非负数必须unsigned
表名、字段名只能使用小写字母、下划线或者数字;禁本文来源gaodaimacom搞#^代%!码&网*止以下划线或者数字开头;禁止两个下划线之间只出现数字;禁用保留字;表名禁止使用复数名词。强制
库名、表名的命名库名尽量与应用名称一致,表名最好用 业务名称_表的作用 命名。强制
索引命名主键索引用 pk_字段名;唯一索引用 uk_字段名;普通索引用 idx_字段名。强制pk_ 即 primary key;uk_即 unique key;idx_即 index
小数类型数据类型是 decimal,禁止使用 float 和 double,float 和 double 存在精度损失,如果存储的数据范围超过 decimal 的范围,建议将数据拆成整数和小数并分开存储。强制
varchar类型varchar是可变长字符串,不预先分配存储空间,长度不要超过5000个字符,如果长度大于5000应用text(独立出一张表来,用主键来对应,避免影响其他字段的索引效率)。强制
表名必备三字段id(数据类型是 unsigned bigint,单表递增,步长为1),gmt_create、gmt_modified(主动创建时间、被动更新时间,数据类型都是 datetime)。强制
字段冗余字段允许适当冗余,但必须考虑数据一致,冗余字段应具备1)不频繁修改;2)不是varchar超长字段,更不能是text字段。推荐
分库分表单表行数超过500万行或者单表容量超过2GB时,才推荐分库分表。推荐

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:MySQL 数据库铁律(小结)
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址