对规范的遵守可用二八原则,不要教条。为满足实际需求 可忽视部分规范。

1.索引规范
*目标
|--利用最小的索引成本找到需要的行记录 *原则
|--做前缀匹配
|--选择区分度高的列做前缀索引列
|--尽量使用重复索引 与where条件匹配
|--避免重复索引
|--索引列尽量包含 group by、order by所涉及的列
`--查询结果比较大时 考虑索引覆盖 2.SQL规范
*原则
|--避免大事务 减少等待和竞争
|--不要使用* 使用具体列名
|--遇到分页查询 使用延迟关联解决(如果有打offset,可先选取ID,然后用主键id关联)
|--避免多表查询 避免join
|--IN元素禁止超过300个
|--避免%前缀做模糊查询,不走索引
|--不要一次更新大量数据(>30000)
|--尽量使用union或in 代替or
|--避免使用子查询 尽量使用join
`--不使用负向查询 not in/like 使用in 反向代替 3.DDl规范
*前提
|--DDL会锁表,评估锁表给业务系统带来的影响 *原则
|--所有变更提前一天提交
|--日常变更工作日下班后,重大变更时间沟通后确定
|--所有DDL变更 需和研发沟通 审核后再提交
`--所有新上线的表必须确定索引后才可上线 4.表的设计规范
*原则
|--使用innodb存储引擎,表的结尾必须是Engine=innodb Auto_increment=1 Default Charset=uft8mb4
|--表必须带有物理主键
| |--id int(10) unsigned primary key not null auto_increment
| |--id bigint(19) unsigned primary key not null auto_increment
| |--int(M) M 表示最大显示宽度,和数字位数也无关系。int(3),int(8) 在磁盘上都是占用 4 btyes 的存储空间
| `--预估数据会无限增加的表,主键一律所以用Bigint(19) unsigned
|--禁止使用字符做主键
|--禁用联合主键
|--不在数据库中存储图片 文件等大数据
`--禁止使用分区表,定期创建分区表会给系统运维造成隐患 5.列设计规范
*原则
|--尽量减少存储空间
|--尽量使用数值类型+unsigned
|--禁用blob/text字段
|--禁用NULL值,建议在定义时都加上默认值
| |--NULL字段很难查询优化
| |--NULL字段的复合索引无效
| `--NULL字段的索引需要额外空间
|--禁止使用外键
|--使用unsigned存储非负数
`--varchar(N) N表示的是字符数不是字节数。
|--Mysql中一个表中所有varchar字段最大长度和是65535个字节
`--进行排序和创建临时表时,会使用N的长度申请内存 6.命名规范
*规范
|--库/表/列/索引名称一律小写
|--命名不要超过32个字符
|--索引
| |--格式为idx_列名缩写
| `--唯一索引 uniq_列名缩写
`--做到见名知意

最新文章

  1. 解决打印机报错:操作无法完成(错误0x00000709)。
  2. Android之POST方法的使用
  3. hdu1231 最大连续子序列
  4. Qt之findChild
  5. oracle:jdbcTest
  6. Object-c 语法 - NSObject常用方法和反射
  7. ABP手机端调用API时的CORS
  8. asp.net 登陆后在ashx处理程序中获取不到Session
  9. iOS开发手记 - iOS9.3 Xcode7打包ipa文件在其他越狱机器上运行的方法和一些问题
  10. Qt 5中信号和槽的新语法
  11. 魅族pro 7详细打开Usb调试模式的方法
  12. python数据类型、if判断语句
  13. mysql5.0手动升级8.0.15,并链接到navicat
  14. 解决双击excel文件打开多个excel.exe进程的问题
  15. win10 64位,家庭版,C++,ini配置说明
  16. Tesseract-OCR的简单使用与训练
  17. zookeeper 负载均衡 核心机制-实现原理 包含ZAB协议(滴滴,阿里面试)
  18. php 原生文件下载
  19. 运行Delphi XE10的MongoDB例程,测试Delphi插入记录性能
  20. HDU4810_Wall Painting

热门文章

  1. Appium + Python -------------元素定位
  2. jmeter随笔(4)--中文url编码问题
  3. XGBoost参数
  4. dumpsys命令的使用及telephony.registry解读
  5. SDUT 3345 数据结构实验之二叉树六:哈夫曼编码
  6. iOS7 iOS8 UITableviewCell处于编辑状态,dismiss或者back崩溃
  7. 6 个优秀的开源 OCR 光学字符识别工具
  8. 火箭18号秀光膀为父母割草(FW)
  9. table extraction
  10. python字典的常用操作方法