记载MySQL开发标准
Mysql视频教程栏目介绍MySQL的开发标准
引荐(免费):mysql视频教程
根基标准
使用innodb储备引擎
表字符集使用utf-8
所有表增加注释
单表数据量倡议操纵在5000W之内
不再数据库中储备图、文件等大数据
制止在线上做数据库压力测试
制止测试、开发环境直连数据库
命名标准
库名表名字段名必需有牢固的命名长度,12个字符之内
库名、表名、字段名制止超越32个字符。须见名之意
库名、表名、字段名制止使用MySQL保存字
暂时库、表名必需以tmp为前缀,并以日期为后缀
备份库、表必需以bak为前缀,并以日期为后缀
库、表、字段开发设计标准
制止使用分区表
拆分大字段和翻身参谋频率低的字段,别离冷热数据
用HASH进散表,表名后缀使进制数,下标从0开端
按日期时间分表需相符
YYYY[MM][DD][HH]
格局采纳适宜的分库分表战略。例如千库十表、十库百表等
尽大概不适用text、blob类型
用decimal代替float和double储备准确浮点数
越简便越好:将字符转换为数字、使用tinyint来代替enum类型
所有字段均为not null
使用unsigned储备非负数
int类型牢固占有4字节储备
使用timestamp储备时间
使用int unsigned储备ipv4
使用varbinary储备大小写敏锐的变长字符串
制止在数据库中储备明文密码,把密码加密后储备
用好数值类型字段
类型
字节
最小值
最大值
tinyint
1
-128
127
smallint
2
-32768
32767
mediumint
3
-8388608
8388607
int
4
-2147483648
2147483647
bigint
8
-9223372036854775808
9223372036854775807
假如数值字段没有那么大,就不要用bigint
储备ip最好用int储备而非char(15)
不同意使用enum
幸免使用null字段
null字段很难查询一花,null字段的索引需要额外空间,null字段的复合索引无效。
索引标准
单个表中的索引数目不超越5个
单个索引中的字段数不超越5个
对字符串使用前缀索引,前缀索引长度不超越8个字符
倡议优先思考前缀索引,必要可增加伪列并创立索引
表必需有主键
不使用更新频繁的列作为主键
尽量不选中字符串列作为主键
不使用uuid md5 hash这些作为主键-太离散
默许使非空的独一键作为主键
倡议选中自增或发号器
重要的SQL必需必需被索引,比方update、delete语句的where前提列、order by、group by、distinct的字段
多表join的字段留意
1.区分度最大的字段放在前面
2.核SQL优先思考覆盖索引
3.幸免冗余和反复索引
4.索引要综合评估数据密度和分布乃至思考查询和更新比例
索引禁忌
1.不在低基数列上创立索引、例如性别
2.不在索引列记性数学运算和函数运算
尽量不使用外键
1.外键用来庇护参照完全性,可以业务端实现
2.对父表和字表的操纵会互相影响,落低可用性
索引命名
1.非独一索引必需以 inx_字段1_字段22.独一索引必需以 uniq_字段1_字段2
索引字段的默许值不克不及为空。null非常影响索引的查询效力。
重复查看和表相关的SQL,相符最左前缀的特点创立索引。多条字段反复的索引,要修改语句前提字段的次序,为其创立一条结合索引,减少索引数目。
能使用独一索引就使用独一索引
研发要经常使用explain,假如发明索引选中性差,必需让他们学会使用hint。
SQL标准
SQL语句尽大概简便
事物要简便,整个事物的时间发生过度不要太长
幸免使用触发器、函数、储备历程
落低业务耦合度,为sacle out,sharding留有余地
幸免在数据库中停止数学运算,mysql不擅长数学运算和逻辑推断
不要用selecy *,查询那几个字段就select那几个字段
sql中使用or的改写成in,or的效力没有in的效力高
in里面数字的个数倡议1000之内
limit分页留意效力。limit越大,效力越低。
使用union all替换union
幸免使大表join
使用group bu分组、主动排序
对数据的更新要打散后大量更新,不要一次更新太多数据
减少和数据库的交互次数
留意使用机能剖析工具
SQL语句要求所有研发,SQL关键字全部大写,每个词只同意一个空格
SQL语句不成以显现隐式转换
能不消not in就不消
制止使用前缀是%的like
不使用负向查询,如 not in、not like
制止在数据库总跑大查询
使预编译语句,只传参数,比传递SQL语句更高效。落低SQL注入。
制止使order by rand
制止单条SQL语句同时更新多个表
流程标准
所有的建表操纵需要提早告知该表触及的查询SQL
所有的建表需要肯定创立那些索引后才可以建表上线
所有的改表构造、加索引操纵都需要触及到所该表的查询SQL发出来通知DBA等相关人员
在创建表加字段此前,要求研发至少提早3天邮件出来,给dba门评估、优化和考核
大量导入、输出数据必需提早通知DBA协助视察
制止线上从库施行后端治理和统计类查询
制止super权限的利用程序账户存在
不再业务顶峰期大量更新、查询数据库
以上就是记载MySQL开发标准的具体内容,更多请关注百分百源码网其它相关文章!