Mysql军规(编写规范)


文章目录

  • Mysql军规(编写规范)
  • 前言
  • 仰天大笑出门去,我辈岂是蓬蒿人

前言

以下是使用Mysql开发、优化需要注意的地方,能不触发就不触发。


提示:以下是本篇文章正文内容,下面案例可供参考

读选比无限接近1,一次IO不要查太多数据,一次IO更新一条数据。

读选比无限接近1,一次IO不要查太多数据,一次IO更新一条数据。

读选比无限接近1,一次IO不要查太多数据,一次IO更新一条数据。

【军规】必须使用UTF8字符集,如果表中涉及用户输入信息,使用utf8mb4字符集

【军规】禁止使用存储过程、视图、触发器

【军规】只允许使用内网域名,而不是ip连接数据库

【军规】禁止使用 INSERT … ON DUPLICATE KEY UPDATE

【军规】只允许通过主键执行DELETE与UPDATE操作,不能通过其它字段更新与删除

【军规】禁止使用SELECT *,只获取必要的字段,需要显示说明列属性

【军规】禁止使用三个表以上的关联查询

【军规】禁止一次性查询大量结果。一次select的结果如果超过100行数据,请认真评估实现的合理性,确认合理的话采取分批查询

【军规】禁止使用mysql分区表

【军规】禁止使用负向查询NOT、!=、<>、!<、!>、NOT IN、NOT LIKE等,会导致全表扫描

【军规】禁止将业务逻辑写在sql脚本中

【军规】MySQL是IO密集型,尽量不要在sql中使用cpu运算类功能

【军规】默认使用主库,业务对数据一致性要求不高、且纯查询场景才走读库

【军规】所有表必须使用Innodb存储引擎

【军规】所有表和字段都需要添加注释

【军规】尽量控制单表数据量的大小,建议控制在500万以内

【军规】禁止在数据库中存储图片,文件等大的二进制数据

【军规】尽量做到冷热数据分离,减小表的宽度

【军规】优先选择符合存储需要的最小的数据类型

【军规】避免使用ENUM类型

【军规】使用TIMESTAMP(4个字节)或DATETIME类型(8个字节)存储时间

【军规】同财务相关的金额类数据必须使用decimal类型

【军规】限制每张表上的索引数量,建议单张表索引不超过5个

【军规】尽可能把所有列定义为NOT NULL

【军规】避免建立冗余索引和重复索引

【军规】禁止使用SELECT * 必须使用SELECT <字段列表> 查询

【军规】禁止使用不含字段列表的INSERT语句

【军规】避免使用子查询,可以把子查询优化为join操作

【军规】SQL中出现order by,必须通过索引实现,且需要通过代码review

【军规】避免使用insert ignore,insert ignore在表字段超长的时候会被自动截取,不会报data too long for column

【军规】变更索引的时候,只能先建索引,再删索引

【军规】提交sql工单的时候备注上时间,没有备注执行时间的默认是晚上20:00之后执行

【军规】禁止使用delete

引入is_delete字段实现。比如有个工员表employee(id, name, is_deleted),name唯一,唯一索引还是只用(name)字段,不要包括is_deleted

创建操作:先判断name是否存在

select * from employee where name = ‘xxx’

若记录不存在,则直接新增记录,并且置is_deleted = 0

若记录存在,且is_deleted = 0,提示记录已存在,创建失败

若记录存在,且is_deleted = 1,则做更新操作,用当前请求的值覆盖记录,并且置is_deleted = 0

删除操作,直接更新is_deleted = 1


仰天大笑出门去,我辈岂是蓬蒿人

Mysql军规(编写规范)相关推荐

  1. mysql 开发规范_专业级的MySQL开发设计规范及SQL编写规范

    在团队开发过程中为了项目的稳定,代码的高效,管理的便捷制定内部种开发设计规范是必不可少的, 这里分享一份我们定义MySQL开发设计规范包括表设计规范,字段设计规范,SQL编写规范 数据库对象命名规范 ...

  2. 58到家的MySQL军规来看看吧,或许对你也有帮助哦

      MySQL数据库是我们整个系统中最核心最宝贵的资源,为了更好的使用每个公司都会制定对应的使用手册来规范大家的使用,也就是标题中提到的军规,接下来给大家分享下58到家的MySQL军规哦,希望对你能有 ...

  3. mysql 军规_58到家MySQL军规升级版

    原标题:58到家MySQL军规升级版 一.基础规范 表存储引擎必须使用InnoDB 表字符集默认使用utf8,必要时候使用utf8mb4 解读: (1)通用,无乱码风险,汉字3字节,英文1字节 (2) ...

  4. mysql 军规_Mysql使用军规

    库表设计规范 建库原则就是同一类业务的表放一个库,不同业务的表尽量避免公用同一个库,尽量避免在程序中执行跨库的关联操作,此操作对后续的快速回档也会产生一定的影响: 每张表必须要有主键,即使选不出合适的 ...

  5. Redis使用的21条军规(规范)

    Redis使用的21条军规(规范) 文章目录 Redis使用的21条军规(规范) 前言 一.基础规范[5条] 二.键值设计[4条] 三.操作命令[4条] 四.内存优化[4条] 五.集群架构[4条] 仰 ...

  6. 58 mysql 军规_58 到家 MySQL 军规升级版

    # 58 到家 MySQL 军规升级版 ## 基础规范 - 表存储引擎必须使用 `InnoDB` - 表字符集默认使用 `utf8`,必要时候使用 `utf8mb4` - 通用,无乱码风险,汉字 3 ...

  7. 58到家MySQL数据库开发规范(javamysql数据)

    58到家MySQL数据库开发规范(javamysql数据) 一.基础规范 表存储引擎必须使用InnoDB 表字符集默认使用utf8,必要时候使用utf8mb4 解读: (1)通用,无乱码风险,汉字3字 ...

  8. mysql 军规_MySQL军规

    下面我来说一下,有关在MYSQL上最实用的"军规",希望大家都能够牢记遵守 一.核心军规 - 不在数据库做运算:cpu计算务必移至业务层 - 控制单表数据量:单表记录控制在1000 ...

  9. Google 公司的 Java 语言编写规范

    为什么80%的码农都做不了架构师?>>>    大部分软件公司可能都有自己的代码编写规范,但是大部分的规范又是粗略到不行不行的,粗到可以忽略,粗略到不同人的代码可以各成一体,同时又符 ...

最新文章

  1. 行业洞察驱动安全防御严峻安全挑战迎刃而解
  2. ArcGis10安装步骤
  3. 博客开通了....激动 呵呵
  4. linux 系统迁移到固态硬盘,把Debian GNU/Linux迁移到SSD上
  5. LeetCode 1286. 字母组合迭代器(回溯/位运算)
  6. 同一个闭区间上有界变差函数的和与积都是有界变差函数
  7. idea 非法字符 \ufeff
  8. Shell: days and dates
  9. springboot + mybatis + 多数据源
  10. Android、Java超详细的身份证验证工具
  11. 尚硅谷Java入门视频教程第五章——面向对象编程(中)
  12. Asp.Net集成支付宝当面付接口报ISV权限不足
  13. access查询女教师所有的信息_大学计算机2(Access数据库基础)_章节测验,期末考试,慕课答案查询公众号...
  14. CodeVs 3315 时空跳跃者的魔法(最终版本)
  15. 财务分析之利润表、现金流量表
  16. Cisco路由器重要存储设备Flash和NVRAM
  17. opencv实战——图像矫正算法深入探讨
  18. Python类型转换——数据类型转换函数大全
  19. Office即点即用安装程序遇到问题——解决方法
  20. 按键精灵手机版基础入门视频教程

热门文章

  1. 6月:恰逢北京人艺建院70周年 | 月度总结
  2. 使用Palm®(奔迈)Mojo 框架开发JavaScript程序 #0
  3. linux mac time machine,树莓派、Windows 设备都可以做你 Mac 的「时间机器」——利用 SMB 协议进行 Time Machine 备份...
  4. 例7并行错误:MPI_ABORT was invoked on rank 0 in communicator MPI COMMUNICATOR 3 DUP FROM 0 with errorcode
  5. 淘宝私域运营如何操作?
  6. python——PYTHONPATH环境变量设置
  7. 超详细Kafka架构原理图(观止)
  8. win10进入Bios
  9. Coupled Attribute Learning for Heterogeneous Face Recognition阅读笔记
  10. 蓝牙模块—HC-05调试