栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

MySQL数据库开发的36条军规

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MySQL数据库开发的36条军规

TIPS
MySQL数据库开发的36条军规,原作者是赶集网石展。大目老师于2014年前后接触,之后就一直遵循。里面的内容个人深度认同。强烈建议大家遵守。
配套的PDF(描述得更加详细,强烈建议下载),下载地址:

https://git.imooc.com/class-73/Architect-Stage-6-Optimize/src/master/%e6%95%b0%e6%8d%ae%e5%ba%93%e8%b0%83%e4%bc%98%e7%9b%b8%e5%85%b3%e6%9d%90%e6%96%99/MySQL%e6%95%b0%e6%8d%ae%e5%ba%93%e5%bc%80%e5%8f%91%e7%9a%84%e4%b8%89%e5%8d%81%e5%85%ad%e6%9d%a1%e5%86%9b%e8%a7%84_%e7%9f%b3%e5%b1%95_%e5%ae%8c%e6%95%b4.pdf

本文来自于课程:《Java架构师体系课:跟随千万级项目从0到100全过程高效成长》

核心军规
  1. 尽量不在数据库做运算
  2. 控制单表数据量 纯INT不超过10M条,含Char不超过5M条
  3. 保持表身段苗条
  4. 平衡范式和冗余
  5. 拒绝大SQL,复杂事务,大批量任务
字段类军规
  1. 用好数值字段,尽量简化字段位数
  2. 把字符转化为数字
  3. 优先使用Enum或Set
  4. 避免使用Null字段
  5. 少用并拆封Text/Blob
  6. 不在数据库中存图片
索引类军规
  1. 谨慎合理添加索引
  2. 字符字段必须建立前缀索引?
  3. 不在索引列做运算
  4. 自增列或全局ID做InnoDB主键
  5. 尽量不用外键
SQL类军规
  1. SQL尽可能简单
  2. 保持事务连接短小
  3. 尽可能避免使用SP/Trigger/Function
  4. 尽量不用Select *
  5. 改写Or为IN()
  6. 改写Or为Union
  7. 避免负向查询和%前缀模糊查询
  8. Count不要使用在可Null的字段上面
  9. 减少Count(*)
  10. Limit高效分页,SELECT * FROM message WHERe id > 9527 (or sub select) limit 10
  11. 使用Union ALL 而不用Union
  12. 分解链接,保证高并发
  13. Group By 去除排序
  14. 同数据类型的列值比较
  15. Load Data导入数据,比Insert快20倍
  16. 打散大批量更新,尽量凌晨操作
约定类军规
  1. 隔离线上线下
  2. 禁止未经DBA认证的子查询
  3. 永远不在程序段显式加锁
  4. 表字符集统一使用UTF8MB4

学习更多:
慕课网为大家准备了一门按演进思路进行讲授的课程:《Java架构师体系课:跟随千万级项目从0到100全过程高效成长》 希望能够帮助大家在演进的过程跟随千万级项目从0到100全过程高效成长。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/236914.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号