Mysql使用规范文档 20180223版
强制:不允许在跳板机上/生产服务器上手工连接,查询或更改线上数据
强制:所有上线脚本必须先在测试环境执行,验证通过以后方可在生产环境执行。
强制:上线脚本的编码格式统一为UTF-8
强制:访问数据库需要使用DNS域名,不能直接写IP
建议:DB名、表名、字段名,都小写,长度建议尽量不超过15
强制:建表_新建表必须包含自增主键列,主键列不应该被修改;
强制:建表_MySQL 字符集 utf8mb4 存储引擎innodb
强制:建表_可能需要建索引的字段,不允许为空 NOT NULL,其他字体内也建议为NOT NULL
强制:建表_需要为每张表的每个字段添加字段注释(最好是中文)
强制:建表_不允许有外键
强制:建表_不允许用enum,set,bit数据类型
强制:建表_需要为timestamp类型指定默认值
强制:建表_定义列名时不能包含关键字
强制:建表_控制单表数据量 单表不超过2000w,建议不超过500w;
强制:建表_合理分表:限制单库表数量在300以内,除未来可能的分表以外;
强制:建表_控制列数量,字段少而精,字段数建议在20以内;
建议:建表_自增列最好是为无符号型
建议:建表_自增列需兼容不连续空洞出现的可能如1,7,15,23
建议:建表_少用text/blob varchar的性能会比text高很多;实在避免不了blob,请拆表
建议:建表_不使用HINT强制使用索引
强制:SQL_不在数据库做运算 cpu计算务必移至业务层;
强制:SQL_禁用跨库查询。
强制:SQL_不允许线上程序做DDL操作
强制:SQL_select 程序代码中不允许有SELECT *
强制:SQL_select 程序代码中最多一次SELECT不允许超过5万行记录
强制:SQL_select 程序代码中单次SELECT 执行时间不能超过5秒,建议不超过200ms
强制:SQL_删除(delete),变更(update) 语句不允许不加where条件
强制:SQL_删除(delete),变更(update) 语句不使用LIMIT
强制:SQL_删除(delete),变更(update) 语句对超过50万行的表 要求WHERE条件一定要用到索引
强制:SQL_删除(delete),变更(update) 语句单个影响行数不能超过5千行。
强制:SQL_删除(delete),变更(update) ,INSERT 语句在影响了5千行以后,需要SLEEP1秒才能执行下一组。不能并发,不能多线程
建议:SQL_拒绝3B 拒绝大sql语句:big sql 拒绝大事物:big transaction 拒绝大批量:big batch
强制:SQL_大语句拆小语句,减少锁时间;一条大sql可以堵死整个库;
建议:SQL_OR改写为IN() or的效率是n级别; in的消息时log(n)级别;
建议:SQL_OR改写为UNION,实际上更建议在程序中去做merge,语句尽量保持简单。
建议:SQL_in的个数建议控制在200以内;
建议:SQL_limit高效分页limit越大,效率越低 建议用id > $last_selected_id limit 10;
建议:SQL_使用union all替代union union有去重开销
建议:SQL_少用连接join;不使用子查询,子查询转化为JOIN执行
建议:SQL_请使用同类型比较,不同类型比较会发生类型转换,当类型转换发生在索引字段上时,将无法使用索引,很可能导致扫表的慢查询。
建议:SQL_打散批量更新/删除,UPDATE/DELETE一条SQL操作几十万、上百万行数据,需要拆分成小SQL,分批次操作,减小对数据库影响。
强制:索引_一个表中,最多可包含16个索引
强制:索引_一个索引中,最多可包含5个列
强制:索引_不允许建重复索引,冗余索引特殊情况下允许 ,但需要给出明确原因。
强制:索引_不使用全文索引
强制:索引_长字符字段必须建前缀索引
建议:索引_索引一定不是越多越好(能不加就不加,要加的一定得加);
建议:索引_名字前缀为"idx_",检查唯一索引前缀是不是"uniq_"
Mysql使用规范文档 20180223版的更多相关文章
- redis使用规范文档 20170522版
运维redis很久了,一直是口头给rd说各种要求,尝试把这些规范总结成文档 摘选一些可能比较通用的规则如下: 强制:所有的key设置过期时间(最长可设置过期时间10天,如有特殊要求,联系dba说明原因 ...
- Web前端开发规范文档(google规范)
(Xee:其实没什么规范约束,但是养成一种好习惯,何乐而不为?) 区分大小写 xhtml 区分大小写,xhtml要求 标签名 属性名 值都要小写,并且要有双引号和 标签闭合. css 元素名称以及i ...
- Web前端开发规范文档你需要知道的事--HTML、css、js、文档等需要规范内容
规范目的 为提高团队协作效率,便于后台人员添加功能及前端后期优化维护,输出高质量的文档,特制订此文档.本规范文档一经确认,前端开发人员必须按本文档规范进行前台页面开发.本文档如有不对或者不 ...
- 前端javascript规范文档 (http://www.xuanfengge.com/category/web)
说明:本文档为前端JS规范 一.规范目的 为提高团队协作效率,便于前端后期优化维护,输出高质量的文档. 二.基本准则 符合web标准,结构表现行为分离,兼容性优良.页面性能方面,代码要求简洁明了有序, ...
- WEB前端开发规范文档(转)
http://codeguide.bootcss.com/ 编写灵活.稳定.高质量的 HTML 和 CSS 代码的规范上面的文档 再结合下面的规范: 无论是从技术角度还是开发视角,对于web前端开发 ...
- 网站开发进阶(三十八)Web前端开发规范文档你需要知道的事
Web前端开发规范文档你需要知道的事 规范目的 为提高团队协作效率, 便于后台人员添加功能及前端后期优化维护, 输出高质量的文档, 特制订此文档. 本规范文档一经确认, 前端开发人员必须按本文档规范进 ...
- Web前端开发规范文档你需要知道的事
Web前端开发规范文档你需要知道的事 规范目的 为提高团队协作效率, 便于后台人员添加功能及前端后期优化维护, 输出高质量的文档, 特制订此文档. 本规范文档一经确认, 前端开发人员必须按本文档规范进 ...
- WEB前端开发规范文档[转]
为新项目写的一份规范文档, 分享给大家. 我想前端开发过程中, 无论是团队开发, 还是单兵做站, 有一份开发文档做规范, 对开发工作都是很有益的. 本文档由本人编写, 部分意见来源于网络, 以此感谢, ...
- 作业配置规范文档[MS SQL]
作业配置规范文档(MS SQL) 文档类型 MS SQL数据库作业配置规范文档 创建日期 2015-07-30 版本变化 V3.0 修改记录 修改人 修改日期 版本 修改描述 潇湘隐者 2015-08 ...
随机推荐
- 科学计算工具-Numpy初探
Numpy基础数据结构 Numpy数组是一个多维数组,称为ndarray.其由两部分组成: 实际的数据 描述这些数据的原数据 导入该库: import numpy as np 多维数组ndarray ...
- Web开发框架推导
本文欲回答这样一个问题:在 「特定环境 」下,如何规划Web开发框架,使其能满足 「期望 」? 假设我们的「特定环境 」如下: 技术层面 使用Java语言进行开发 通过Maven构建 基于Spring ...
- homebrew 无法安装提示不能在根目录下使用
首先提示一点:能谷歌绝对不要百度解决问题. 1.昨天百度了一天,都都没有找到解决方案.因为昨天是20161130日,我的蓝灯FQ软件的流量使用光了.悲催- 2.今天是20161201日,我可以免费使用 ...
- python 爬取糗事百科 gui小程序
前言:有时候无聊看一些搞笑的段子,糗事百科还是个不错的网站,所以就想用Python来玩一下.也比较简单,就写出来分享一下.嘿嘿 环境:Python 2.7 + win7 现在开始,打开糗事百科网站,先 ...
- Hama安装及示例运行
Hama介绍 Apache Hama是一个纯BSP(Bulk Synchronous Parallel)计算框架,模仿了Google的Pregel.用来处理大规模的科学计算,特别是矩阵和图计算. BS ...
- Davinci DM6446开发攻略——DSP开发工程建立
前段时间一直忙一个项目,同时在生活上时时提防和抵抗中国地沟油.国外核心转基因调和油.大豆油.色拉油.大米玉米.可怕的喂药鱼.药水泡农药喷无虫咬的青菜,所以没时间打理自己的博客,让开发攻略停顿了一段时间 ...
- 项目总结2——mybatis配置的理解
之前的项目基本上都是用mongodb,以至于mysql相关的知识异常薄弱,这次连续一个半月的加班,总算是实际用到了mysql,也使自己对mysql了解的更多,对mybatis了解的更多,这里就说一说经 ...
- 修改android 开机画面
对于使用安卓手机的人来说,能够自由定制手机的各种界面是每个用户之所以喜欢安卓系统的最根本的缘由,比如手机的开机界面中的bootanimation.zip文件.本文就如何修改开机界面,做一个简单的流程介 ...
- java.sql.SQLException:ORA-01861:文字和格式字符串不匹配
1.错误描述 java.sql.SQLException:ORA-01861:文字和格式字符串不匹配 2.错误原因 字段名为statis_date在数据库中存储的数据类型是Date,而在Java中拼接 ...
- windows下键盘常用快捷键整理
以下快捷键均在win7环境下测试有效: 声明:本博文由多篇博文经实测整理而出. win键相关的快捷键多用于桌面场景,如开起资源管理器.切换任务窗口.最大化最小化窗口等等. 场景一: 1. 任何情况下想 ...