惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Security Latest
Security Latest
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Stack Overflow Blog
Stack Overflow Blog
WordPress大学
WordPress大学
N
Netflix TechBlog - Medium
GbyAI
GbyAI
云风的 BLOG
云风的 BLOG
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
宝玉的分享
宝玉的分享
博客园 - 【当耐特】
C
Cyber Attacks, Cyber Crime and Cyber Security
雷峰网
雷峰网
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
T
Threat Research - Cisco Blogs
NISL@THU
NISL@THU
Spread Privacy
Spread Privacy
P
Proofpoint News Feed
J
Java Code Geeks
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
MyScale Blog
MyScale Blog
T
Tor Project blog
P
Proofpoint News Feed
C
CERT Recently Published Vulnerability Notes
P
Privacy & Cybersecurity Law Blog
MongoDB | Blog
MongoDB | Blog
Simon Willison's Weblog
Simon Willison's Weblog
C
Cybersecurity and Infrastructure Security Agency CISA
L
LINUX DO - 热门话题
小众软件
小众软件
G
GRAHAM CLULEY
P
Privacy International News Feed
AWS News Blog
AWS News Blog
Know Your Adversary
Know Your Adversary
P
Palo Alto Networks Blog
人人都是产品经理
人人都是产品经理
S
Schneier on Security
Scott Helme
Scott Helme
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
B
Blog RSS Feed
T
The Exploit Database - CXSecurity.com
Recent Announcements
Recent Announcements
E
Exploit-DB.com RSS Feed
C
CXSECURITY Database RSS Feed - CXSecurity.com
U
Unit 42
The Register - Security
The Register - Security
S
Securelist
Martin Fowler
Martin Fowler
Project Zero
Project Zero
大猫的无限游戏
大猫的无限游戏
Cisco Talos Blog
Cisco Talos Blog

博客园 - 技术宅home

kali捕获wifi握手包 centos7安装mysql8 【继续教育】选准用好“三支一扶”人员,助力乡村振兴战略 【继续教育】深入学***在长三角一体化发展座谈会的重要讲话精神,推动长三角区域一体化和高质量发展 【继续教育】全球战“疫”斗争中的中国优势、 中国力量、中国担当、中国精神 【继续教育】民法典总则编解读 【继续教育】坚持创新在我国现代化建设全局中的核心地位,把科技自立自强作为国家发展的战略支撑 【继续教育】加快构建完整内需体系,形成国内国际双循环相互促进新格局 redis key过期提醒,实现订单自动取消 查看当前服务器中最占内存的程序 百度智能云之语音技术(自动播报语音) maven多环境IDEA启动报Do not use @ for indentation错误解决方法 StringRedisTemplate获取redis信息 微信测试公众号手动发送模板消息 spring-boot-starter-parent 与 spring-boot-dependencies Docker 容器知识点 Docker 常用命令 Docker 镜像知识点 Centos离线下载Aria2 AriaNG bt-tracker自动更新
MySQL规范
技术宅home · 2019-09-23 · via 博客园 - 技术宅home

一、MySQL数据库命名规范

  1. 数据库所有表前缀均使用项目名称首字母缩写;
  2. 数据库所有对象名称均使用小写字母,并且单词之间通过下划线分开;
  3. 数据库临时表必须以 pro_tmp_ 为前缀并且以日期 _20190917 为后缀,备份表必须以 pro_bac_ 为前缀并以时间戳为后缀;(pro为项目名称首字母缩写);
  4. 数据库所有存储相同数据的列名和列类型必须保持一致。

二、MySQL数据库基本设计规范

  1. 若无特殊说明,建表时一律采用Innodb存储引擎;

    选择合适的引擎可以提高数据库性能,如InnoDB和MyISAM,InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定;基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持;MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持以及外部键等高级数据库功能;因此,其支持事务处理、支持外键、支持崩溃修复能力和并发控制是我们建表时首选的存储引擎。

  2. 数据库和表的字符集统一使用UTF8;

    数据库和表的字符集统一使用utf8,若是有字段需要存储emoji表情之类的,则将表或字段设置成utf8mb4;因为,utf8号称万国码,其无需转码、无乱码风险且节省空间,而utf8mb4又向下兼容utf8。

  3. 设计数据库时所有表和字段必须添加注释;
  4. 单个表的数据量大小控制在500万以内;
  5. 使用MySQL分区表需谨慎;
  6. 尽量满足冷热数据分离,减小表等宽度;
  7. 建立预留字段需谨慎;
  8. 数据库中禁止存储图片、文件等大的二进制数据。

三、MySQL数据库字段设计规范

  1. 优先选择符合存储需要的最小的数据类型;
  2. 避免使用TEXT、BLOB数据类型;
  3. 避免使用ENUM枚举类型;
  4. 使用TIMESTAMP(4字节)或DATETIME(8字节)类型存储时间;
  5. 财务相关的金额类数据必须使用decimal 类型。

四、MySQL索引设计规范

  1. 每张表的索引数量不超过5个;
  2. 每个Innodb 表必须有一个主键;
  3. 尽量避免使用外键约束。

五、MySQL数据库SQL开发规范

  1. 在明显不会有重复值时使用UNION ALL 而不是UNION;

    1)UNION 会把两个结果集的所有数据放到临时表中后再进行去重操作;

    2)UNION ALL 不会再对结果集进行去重操作;

  2. 把复杂、较长的SQL 拆分为为多个小SQL 执行。