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

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

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



一、数据库命令规范

  (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)避免使用TEXTBLOB数据类型,最常见的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万行的批量写(UPDATEDELETEINSERT)操作,要分批多次进行操作

  (2)对于大表使用pt-online-schema-change修改表结构

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

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



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

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

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

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

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


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



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