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

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_列名缩写
`--做到见名知意

mysql数据库开发规范的更多相关文章

  1. MySQL数据库开发规范知识点

    前言: 设计规范更多的是为了确保数据库设计的合理性.为了项目最终的协调稳定性,而命名规范则更多的是为了确保设计的正式和统一. 约定优先于配置(Convention Over Configuration ...

  2. MySQL数据库开发规范-EC

    最近一段时间一边在线上抓取SQL来优化,一边在整理这个开发规范,尽量减少新的问题SQL进入生产库.今天也是对公司的开发做了一次培训,PPT就不放上来了,里面有十来个生产SQL的案例.因为规范大部分还是 ...

  3. Mysql 数据库开发规范

    设计范式参看,DDL与DDL 库表基础规范 1.注释 每个表要添加注释,对 status 型需指明主要值的含义,如”0-离线,1-在线” 2.表的字段数量 单表字段数一般考虑上限为 30左右,再多的话 ...

  4. PHP+mysql数据库开发搜索功能:中英文分词+全文检索(MySQL全文检索+中文分词(SCWS))

    PHP+mysql数据库开发类似百度的搜索功能:中英文分词+全文检索 中文分词: a)   robbe PHP中文分词扩展: http://www.boyunjian.com/v/softd/robb ...

  5. 原生Jdbc操作Mysql数据库开发步骤

    原生Jdbc操作Mysql数据库开发步骤 原生的Jdbc就是指,不使用任何框架,仅用java.sql包下的方法实现数据库查询等的操作. 下面是开发步骤:        1.导入数据库驱动包       ...

  6. MySQL 数据库开发的 36 条军规

    MySQL 数据库开发的 36 条军规 写在前面的话: 总是在灾难发生后,才想起容灾的重要性: 总是在吃过亏后,才记得曾经有人提醒过. (一)核心军规 (1)不在数据库做运算:cpu计算务必移至业务层 ...

  7. MongoDB 数据库开发规范

    MongoDB 数据库开发规范 转载自-落雨_ https://developer.aliyun.com/article/255536 简介: mongoDB库的设计 mongodb数据库命名规范:d ...

  8. mysql数据库开发常见问题及优化

    mysql 数据库是被广泛应用的关系型数据库,其体积小.支持多处理器.开源并免费的特性使其在 Internet 中小型网站中的使用率尤其高.在使用 mysql 的过程中不规范的 SQL 编写.非最优的 ...

  9. 【转】拍拍网2015年mysql最新开发规范

    1.命名规范 (1)库名.表名.字段名必须使用小写字母,并采用下划线分割. (2)库名.表名.字段名禁止超过32个字符. (3)库名.表名.字段名必须见名知意.命名与业务.产品线等相关联. (4)库名 ...

随机推荐

  1. SQL执行的原理以及一些常见的关键字

    sql语句在面试里面问道的问题: sql的解析的顺序 1.where里面的条件是从右向左扫描解析 2.from里面的大表在前,小表在后,解析的顺序是从右向左解析. 3.left/right/inner ...

  2. I/B/P SP/SI

    H264中I.B.P帧 I帧:只作为参考帧,采用帧内预测 B帧:以其前面的I帧或P帧和后面的P帧作为参考帧 P帧:只能以前面的I帧或P帧作为参考帧 H264中的SP SI SP和SI是H264中引入的 ...

  3. 翻译:深入 AngularUI Router

    原文地址:http://www.ng-newsletter.com/posts/angular-ui-router.html ui-router: https://angular-ui.github. ...

  4. gcc编译, gdb调试, makefile写法

    //test.c: #include <stdio.h> int main(void) { printf("hello world!"); return 0; } == ...

  5. 阿里云搭建LAMP环境详细教程

    一.云服务器的选择 随着大数据时代的到来,为了满足更为复杂的运算和用户更为苛刻的需求,云计算应运而生,随之而来的就是云服务器.过去的服务器成本较高,运算模式较为单一,资源利用率不高,而云服务器的出现刚 ...

  6. 【LeetCode】3.Longest Substring Without Repeating Characters 最长无重复子串

    题目: Given a string, find the length of the longest substring without repeating characters. Examples: ...

  7. js控制台调试

    在web编程的过程中js代码出现错误,可以通过console.log()将相关信息输入到控制台进行调试. 清空控制台右击选 Clear console 菜单,或者输入 clear() 都行 控制台相关 ...

  8. 洛谷P2085 最小函数值(minval)

    P2085 最小函数值(minval) 218通过 487提交 题目提供者该用户不存在 标签堆高级数据结构 难度普及+/提高 提交该题 讨论 题解 记录 最新讨论 暂时没有讨论 题目描述 有n个函数, ...

  9. hql 关联查询

    HQL 带的连接语句只能是实体与 该实体的属性 进行连接 其意义就是为了优化(通过延迟加载查询关联的属性)需要进行配置 from A left join A.B where (b.flag is nu ...

  10. JavaScript基本用法

    首次创建 $(document).ready(function () { });