http://www.web008.net

Mysql使用规范文档

 

 

强制:不允许在跳板机上/分娩服务器上手工业连接,查询或改良线上数据

强制:全部上线脚本必需先在测验景况试行,验证通过之后能够在生育情形实行。

强制:上线脚本的编码格式统风流洒脱为UTF-8

强制:访谈数据库须要动用DNS域名,无法一贯写IP

提出:DB名、表名、字段名,都小写,长度提议尽量不超越15

 

强制:建表_新建表必需包罗自增主键列,主键列不应该被退换;

强制:建表_MySQL 字符集 utf8mb4  存款和储蓄引擎innodb

强制:建表_大概供给建索引的字段,不容许为空 NOT NULL,别的字体内也提出为NOT NULL

强制:建表_需求为每张表的各个字段加多字段注释(最棒是普通话卡塔 尔(阿拉伯语:قطر‎

强制:建表_差别意有外键

强制:建表_不容许用enum,set,bit数据类型

强制:建表_亟待为timestamp类型内定默许值

强制:建表_概念列名时无法包蕴关键字

强制:建表_支配单表数据量 单表不超过二〇〇四w,建议不超越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_OLAND改写为IN() or的频率是n品级; in的新闻时log(n)等级;

建议:SQL_OLX570改写为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操作几十万、上百万行数据,须求拆分成徐熙娣(英文名:Elephant Dee卡塔 尔(英语:State of Qatar)(Elephant Dee卡塔尔国QL,分批次操作,减小对数据库影响。

 

强制:索引_二个表中,最多可含蓄17个目录

强制:索引_八个目录中,最多可含蓄5个列

强制:索引_不容许建重复索引,冗余索引特殊境况下同意 ,但供给提交鲜明原因。

强制:索引_不选用全文索引

强制:索引_长字符字段必需建前缀索引

建议:索引_目录一定不是越多越好(能不加就不加,要加的早晚得加);

建议:索引_名字前缀为"idx_",检查独一索引前缀是或不是"uniq_"

郑重声明:本文版权归美高梅163888所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。