400-800-8806
您的位置:首页>新闻中心>热门文章

干货收藏??-常用MySQL规范指南,简单易??

发布时间:2019-03-14 作者: 浏览:304



一、数据库命令规范

  ??1)所有数据库对象名称必须使用小写字母并用下划线分割;

  ??2??所有数据库对象名称禁止使用mysql保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来);

  ??3??数据库对象的命名要能做到见名识意,并且最后不要超??32个字符;

  ??4??临时库表必须??tmp为前缀,备份表必须??bak为前缀并以日期(时间戳)为后缀??

  ??5)所有存储相同数据的列名和列类型必须一致(一般作为关联列,如果查询时关联列类型不一致会自动进行数据类型隐式转换,会造成列上的索引失效,导致查询效率降低)??


二、数据库基本涉及规范

  ??1)所有表必须使用Innodb存储引擎

  ??2??数据库和表的字符集同意使??UTF8

  ??3)所有表和字段都需要添加注??

  ??4??尽量控制单表数据量的大小,建议控制在500W以内

  ??5??谨慎使用MySQL分区??

  ??6)尽量做到冷热数据分离,减小表的宽度

  ??7)禁止在表中建立预留字段

  ??8)禁止在数据库中存储图片,文件等大的二进制数??

  ??9)禁止在线上做数据库压力测试

  ??10)禁止从开发环境,测试环境直接连接生成环境数据??


三、数据库字段设计规范

  ??1)优先选择符合存储需要的最小的数据类型

  ??2??避免使用TEXT??BLOB数据类型,最常见??TEXT类型可以存储64k的数??

  ??3??避免使用ENUM类型

  ??4??尽可能把所有列定义??NOT NULL

  ??5??使用TIMESTAMP<4个字??>??DATETIME类型<8个字??>存储时间

  ??6??同财务相关的金额类数据必须使??decimal类型


四、数据库开发规??

  ??1)建议使用预编译语句进行数据库操??

  ??2)避免数据类型的隐式转换

  ??3)充分利用表上已经存在的索引

  ??4)数据库设计时,应该要对以后扩展进行考虑

  ??5)程序连接不同的数据库使用不同的账号,进行跨库查??

  ??6??禁止使用SELECT*必须使用SELECT<字段列表>查询

  ??7??禁止使用不含字段列表??INSERT语句

  ??8??避免使用子查询,可以吧子查询优化??join操作

  ??9??避免使用JOIN关联

  ??10)减少同数据库的交互次数

  ??11??对应同一列进??or判断时,使用in代替or

  ??12??禁止使用order by rand()进行随机排序

  ??13)WHERE从句中禁止对列进行函数转换和计算

  ??14??在明显不会有重复值时使用UNION ALL而不??UNION

  ??15??拆分复杂的大SQL为多个小SQL


??、数据库操作行为规范

  ??1????100万行的批量写??UPDATE??DELETE??INSERT)操作,要分批多次进行操??

  ??2??对于大表使用pt-online-schema-change修改表结??

  ??3??禁止为程序使用的账号赋予super权限

  ??4??对于程序连接数据库账号,遵循权限最小原??



       数据库管理是一项繁杂而又琐碎的工作,即使是最专业的数据库工程师仍然无法避免日常操作所带来的失误。那么,数据库问题频发的原因有哪些呢??

 1. 传统??IT建设方式、管理方式导致了今天的问????传统的建设方式:一大堆厂商的产品简单堆叠、松散拼凑?? 传统的管理方式:用户的运维人??+一大堆厂商

2. 缺乏专业规划??IT架构,缺乏稳定性,增加管理复杂性架构缺乏规划和合理化设计,借助一大堆厂商提供的分散的单机、双机、备份一体机、虚拟化、超融合等技术的简单堆??

3. 传统的数据库管理方式无法满足现代企业的业务要??

4. 高速的业务增长导致数据平台面临巨大挑战


网强IT综合管理软件,可实现??MySQL??DB2??Oracle??SQL Server等市场常见数据库厂商的产品进行跨平台、跨厂商的统一管理,实现对数据库的全方位监控与管理,让数据库运维不再成为你的烦恼??



 
客服  
咨询电话:400-800-8806  
 
免费
试用