百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>数据库> 记载MySQL开发标准
分享文章到:

记载MySQL开发标准

发布时间:01/01 来源:未知 浏览: 关键词:

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开发标准的具体内容,更多请关注百分百源码网其它相关文章!

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有156人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板