千家信息网

MySQL开发规范有哪些

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章将为大家详细讲解有关MySQL开发规范有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。基础规范使用innodb存储引擎表字符集使用utf-8所有表添加注
千家信息网最后更新 2026年10月31日MySQL开发规范有哪些

这篇文章将为大家详细讲解有关MySQL开发规范有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

基础规范

  • 使用innodb存储引擎

  • 表字符集使用utf-8

  • 所有表添加注释

  • 单表数据量建议控制在5000W以内

  • 不再数据库中存储图、文件等大数据

  • 禁止在线上做数据库压力测试

  • 禁止测试、开发环境直连数据库

命名规范

  • 库名表名字段名必须有固定的命名长度,12个字符以内

  • 库名、表名、字段名禁止超过32个字符。须见名之意

  • 库名、表名、字段名禁止使用MySQL保留字

  • 临时库、表名必须以tmp为前缀,并以日期为后缀

  • 备份库、表必须以bak为前缀,并以日期为后缀

库、表、字段开发设计规范

  • 禁止使用分区表

  • 拆分大字段和翻身顾问频率低的字段,分离冷热数据

  • 用HASH进散表,表名后缀使进制数,下标从0开始

  • 按日期时间分表需符合YYYY[MM][DD][HH]格式

  • 采用合适的分库分表策略。例如千库十表、十库百表等

  • 尽可能不适用text、blob类型

  • 用decimal代替float和double存储精确浮点数

  • 越简单越好:将字符转换为数字、使用tinyint来代替enum类型

  • 所有字段均为not null

  • 使用unsigned存储非负数

  • int类型固定占有4字节存储

  • 使用timestamp存储时间

  • 使用int unsigned存储ipv4

  • 使用varbinary存储大小写敏感的变长字符串

  • 禁止在数据库中存储明文密码,把密码加密后存储

  • 用好数值类型字段


    类型

    字节

    最小值

    最大值





    tinyint

    1

    -128

    127

    smallint

    2

    -32768

    32767

    mediumint

    3

    -8388608

    8388607

    int

    4

    -2147483648

    2147483647

    bigint

    8

    -9223372036854775808

    9223372036854775807

    如果数值字段没有那么大,就不要用bigint

  • 存储ip最好用int存储而非char(15)

  • 不允许使用enum

  • 避免使用null字段

    null字段很难查询一花,null字段的索引需要额外空间,null字段的复合索引无效。

索引规范

  • 单个表中的索引数量不超过5个

  • 单个索引中的字段数不超过5个

  • 对字符串使用前缀索引,前缀索引长度不超过8个字符

  • 建议优先考虑前缀索引,必要可添加伪列并建立索引

  • 表必须有主键

  • 不使用更新频繁的列作为主键

  • 尽量不选择字符串列作为主键

  • 不使用uuid md5 hash这些作为主键-太离散

  • 默认使非空的唯一键作为主键

  • 建议选择自增或发号器

  • 重要的SQL必须必须被索引,比如update、delete语句的where条件列、order by、group by、distinct的字段

  • 多表join的字段注意


1.区分度最大的字段放在前面
2.核SQL优先考虑覆盖索引
3.避免冗余和重复索引
4.索引要综合评估数据密度和分布以及考虑查询和更新比例
  • 索引禁忌


1.不在低基数列上建立索引、例如性别
2.不在索引列记性数学运算和函数运算
  • 尽量不使用外键


1.外键用来保护参照完整性,可以业务端实现
2.对父表和字表的操作会互相影响,降低可用性
  • 索引命名


1.非唯一索引必须以 inx_字段1_字段22.唯一索引必须以 uniq_字段1_字段2
  • 索引字段的默认值不能为空。null非常影响索引的查询效率。

  • 反复查看和表相关的SQL,符合最左前缀的特点建立索引。多条字段重复的索引,要修改语句条件字段的顺序,为其建立一条联合索引,减少索引数量。

  • 能使用唯一索引就使用唯一索引

  • 研发要经常使用explain,如果发现索引选择性差,必须让他们学会使用hint。

SQL规范

  • SQL语句尽可能简单

  • 事物要简单,整个事物的时间产生过度不要太长

  • 避免使用触发器、函数、存储过程

  • 降低业务耦合度,为sacle out,sharding留有余地

  • 避免在数据库中进行数学运算,mysql不擅长数学运算和逻辑判断

  • 不要用selecy *,查询那几个字段就select那几个字段

  • sql中使用or的改写成in,or的效率没有in的效率高

  • in里面数字的个数建议1000以内

  • limit分页注意效率。limit越大,效率越低。

  • 使用union all替代union

  • 避免使大表join

  • 使用group bu分组、自动排序

  • 对数据的更新要打散后批量更新,不要一次更新太多数据

  • 减少和数据库的交互次数

  • 注意使用性能分析工具

  • SQL语句要求所有研发,SQL关键字全部大写,每个词只允许一个空格

  • SQL语句不可以出现隐式转换

  • 能不用not in就不用

  • 禁止使用前缀是%的like

  • 不使用负向查询,如 not in、not like

  • 禁止在数据库总跑大查询

  • 使预编译语句,只传参数,比传递SQL语句更高效。降低SQL注入。

  • 禁止使order by rand

  • 禁止单条SQL语句同时更新多个表

流程规范

  • 所有的建表操作需要提前告知该表涉及的查询SQL

  • 所有的建表需要确定建立那些索引后才可以建表上线

  • 所有的改表结构、加索引操作都需要涉及到所该表的查询SQL发出来通知DBA等相关人员

  • 在新建表加字段之前,要求研发至少提前3天邮件出来,给dba门评估、优化和审核

  • 批量导入、导出数据必须提前通知DBA协助观察

  • 禁止线上从库执行后端管理和统计类查询

  • 禁止super权限的应用程序账户存在

  • 不再业务高峰期批量更新、查询数据库

关于MySQL开发规范有哪些就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

索引 字段 数据 存储 查询 字符 数据库 语句 前缀 更新 效率 类型 开发 建议 运算 业务 后缀 数学 日期 时间 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 西安纸贵互联网科技有限公司 云信互联网科技有限公司 科技互联网龙头 互联网和科技创新 金融科技 互联网金融 科技服务与互联网 高科技与互联网 齐家互联网科技 互联网金融科技创新 语蝶互联网科技有限公司 洛阳共同富裕互联网科技有限公司 科技大学互联网 国大互联网教育科技有限公司薪资 西安有哪些互联网高科技企业 云鲸互联网络科技有限公司 容联科技互联网电商 陕西九四连强互联网科技有限公司 悟空问答互联网科技 三亚科技创新互联网基地 山东亿川互联网科技有限责任公司 上海挚品互联网科技有限公司 互联网科技大会案例 甘肃拓世互联网科技有限公司 互联网科技中介 成都互联网科技公司工作好不好 深圳市罗太互联网科技有限公司 众安科技工业互联网合作 下一代互联网重大应用科技园 北京天晋互联网科技有限公司 东风日产互联网科技公司叫什么
0