这期内容当中小编将会给大家带来有关MySQL有哪些开发规范,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
#MySQL开发规范
##命名规范
create table user ...
tmp_user_20160606
bak_user_20160606
##基础规范
使用innodb存储引擎
表字符集使用utf-8
所有表必须添加注释
单表数据量控制在5000w以内
不在数据库中存储图片、文件等大数据
禁止在线上做数据库压力测试
##库表设计
##字段设计
##索引规范
单张表索引数量不超过5个
单个索引中的字段数不超过5个
前缀索引长度不超过8个字符
区分度最大的字段放在前面。如:联合索引
尽量不选择字符串列
不使用外键
不使用更新频繁的列
不使用UUID MD5 HASH
不使用%前导的查询,如like "%ab"
不使用负向查询,如not in/like
不在低基数列上建立索引,例如:性别
不在索引列进行数学运算和函数运算
##SQL设计
充分利用前缀索引,例如:最左前缀
不使用select *
不能同时用到两个范围条件
不使用存储过程、触发器、视图等
不使用大表join
不使用数学运算和逻辑判断
不使用order by rand()
不使用单条sql语句同时更新多个表
多使用insert ... on duplicate key update
多使用replace into、insert ignore、insert into values(),(),()
多使用update ... where id in(10,20,50,...)
使用in代替or, in的值不超过1000个
使用explain诊断,避免生成临时表
使用union all而不是union
###good select * from profiles where sex='M' order by rating limit 10; select * from profiles inner join (select from profiles where x.sex='M' order by rating limit 100000,10) as x using (); ###bad select * from profiles where sex='M' order by rating limit 100000,10;
##行为规范
上述就是小编为大家分享的MySQL有哪些开发规范了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注天达云行业资讯频道。