你的位置:首页 > 软件开发 > 数据库 > 【mysql】数据库使用的一些规范

【mysql】数据库使用的一些规范

发布时间:2015-12-20 00:00:07
一、MySQL存在的问题优化器对复杂SQL支持不好对SQL标准支持不好大规模集群方案不成熟,主要指中间件ID生成器,全局自增ID异步逻辑复制,数据安全性问题Online DDLHA方案不完善备份和恢复方案还是比较复杂,需要依赖外部组件展现给用户信息过少,排查问题困难众多分支,让人 ...

一、MySQL存在的问题

  • 优化器对复杂SQL支持不好

  • 对SQL标准支持不好

  • 大规模集群方案不成熟,主要指中间件

  • ID生成器,全局自增ID

  • 异步逻辑复制,数据安全性问题

  • Online DDL

  • HA方案不完善

  • 备份和恢复方案还是比较复杂,需要依赖外部组件

  • 展现给用户信息过少,排查问题困难

  • 众多分支,让人难以选择

二、数据库环境介绍

通常来讲,各个互联网公司的数据库分为5个数据库环境:

  • dev : 开发环境, 开发可读写,可修改表结构; 常用的163的数据库表; 开发人员可以修改表结构, 可以随意修改其中的数据; 但是需要保证不影响其他开发同事

  • qa : 测试环境, 开发可读写, 开发人员可以通过工具修改表结构

  • sim: 模拟环境, 开发可读写, 通过web平台;发起上线请求时,会先在这个环境上进行预执行, 这个环境也可供部署上线演练或压力测试使用 可以读写

  • real: 生产数据库从库(准实时同步),只读环境,不允许修改数据,不允许修改表结构; 供线上问题查找,数据查询等使用

  • online: 线上环境;开发人员不允许直接在线上环境进行数据库操作,如果需要操作必须找DBA进行操作并进行相应记录

这些环境的机器,一定要做到权限划分明确,读写帐号分离,并且有辨识度,能区分具体业务。例如用户名w_wap, r_wap 能看出来,读写帐号是wap应用的

三、数据库开发规范

开发规范本身也包含几部分:基本命名和约束规范,字段设计规范,索引规范,使用规范等

规范存在意义

  • 保证线上数据库schema规范

  • 减少出问题概率

  • 方便自动化管理

  • 规范需要长期坚持,对开发和DBA是一个双赢的事情

约束规范

  • 表字符集选择UTF8 ,如果需要存储emoj表情,需要使用UTF8mb4(MySQL 5.5.3以后支持)

  • 存储引擎使用InnoDB

  • 变长字符串尽量使用VARCHAR VARBINARY

  • 不在数据库中存储图片、文件

  • 设计表的时候需要添加注释
  • 单表数据量控制在1亿以下,单表物理大小不超过10GB,行平均长度不超过8KB

  • 禁止在线上做数据库压⼒测试

  • 禁止从测试、开发环境直连数据库

create database test_crm default character set=utf8;

原标题:【mysql】数据库使用的一些规范

关键词:MYSQL

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。