数据库管理规范.pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《数据库管理规范.pdf》由会员分享,可在线阅读,更多相关《数据库管理规范.pdf(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、.z.版本号:版本号:V1.0V1.0信息科信息科20172017 年年 4 4 月月.数据库管理规范数据库管理规范-数据库管理规范数据库管理规范1 1 规范说明规范说明 3 32 2 维护管理安全规范维护管理安全规范 3 33 3 设计规范设计规范 4 44.SQL4.SQL 编写规范编写规范 7 75.5.数据库备份与恢复策略规范数据库备份与恢复策略规范 8 86 6 开发测试与上线安全规范开发测试与上线安全规范 10107 7 监控监控 10108 8 连接池使用规范连接池使用规范 10109 9 数据库重要级别划分数据库重要级别划分 11111010 数据库安装规范数据库安装规范 11
2、111111 业务上线数据库部分规范业务上线数据库部分规范 1212-可修编.-1 1 规范说明规范说明本规范是针对数据库使用,维护管理,设计开发等。2 2 维护管理安全规范维护管理安全规范2.12.1 数据库版本使用规范数据库版本使用规范【强制】MYSQL 使用 5.6.39 社区版本2.32.3 数据库账户安全与管理规范数据库账户安全与管理规范2.3.12.3.1 密码安全密码安全【强制】密码不少于 8 位,应包含数字,字母,字符密码不应该和用户名一致删除数据库默认空用户账户必须修改 root 密码2.42.4 账户安全管理账户安全管理【强制】为应用程序设立独立访问账户禁止开发工程师通过应
3、用XX 登录生产数据库-可修编.-禁止 QA 申请线上账号与使用账号登陆线上环境进行测试数据库只有 root 用户具有最高管理权限备份数据库用户要单独建立,并专属备份恢复操作数据库安装后删除或锁闭不需要使用的数据库账号数据库管理员账户可以锁定和解锁其他用户数据库管理账户在空闲 5 分钟以上会自动退出数据库管理权限账号不能超过2 个2.52.5 数据库日志管理规范数据库日志管理规范【强制】windows、linux 下的日志管理Windows 系统应开启日志功能,记录系统和系统中各个进程的相关信息linux 的操作系统要开启系统日志Mysql 数据库如果使用了 innodb 引擎必须打开二进制日
4、志Mysql 必须打开慢日志,并且将慢日志阀值设置为1-2 秒之间对 Mysql 的错误日志等要进行定期查看,定期清理和定期备份管理2.62.6 数据库架构规范数据库架构规范【强制】2.6.12.6.1mysqlmysql 数据库高可用数据库高可用MYSQL 采用复制+第三方心跳软件或者第三方集群架构(经测试后)实现近 7X24 小时高可用性要求,数据库架构必须能够实现故障自动迁移,满足业务7X24 小时持续服务要求3 3 设计规范设计规范3.13.1 命名规范命名规范【强制】3.1.13.1.1表的命名表的命名-可修编.-表的名称在 T_后增加一个或者多个后缀,表名、字段名必须使用小写字母或
5、数字;禁止出现数字开头,禁止两个下划线中间只出现数字。数据库字段名的修改代价很大,因为无法进行预发布,所以字段名称需要慎重考虑。3.1.23.1.2 视图命名视图命名:V_相关表名(或者根据需要另取名字)3.1.33.1.3 存储过程命名存储过程命名:PRO_存储过程名(用英文表达存储过程意义)3.1.43.1.4 函数命名函数命名:FUN_函数名称(用英文表达函数作用)3.1.53.1.5 触发器命名触发器命名:TRI_触发器名称(用英文表达触发器作用)3.1.63.1.6 索引命名索引命名:I_表名_字段名(如果存在多字段索引,取每字段前三个字符加下划线组合,如:在 hyid,hyname
6、,hymobile 上建立联合索引,命名:I_表名_hyi_hyn_hym,如果前三个截取字符相同,就从字段名称中不同的字符开始取三个字符加下划线组合,如:在zhyid,zhyname,zhymobile 上建立联合索引,命名:I_表_id_nam_mob)3.1.73.1.7 唯一索引命名唯一索引命名:UI_表名_字段名(如果存在多字段唯一索引,取每字段前三个字符加 下 划 线 组 合,如:在hyid,hyname,hymobile 上 建 立 唯 一 索 引,命 名:UI_ 表 名_hyi_hyn_hym,如果前三个截取字符相同,就从字段名称中不同的字符开始取三个字符加下划线组合,如:在
7、zhyid,zhyname,zhymobile上建立唯一索引,命名:UI_表_id_nam_mob)3.1.83.1.8主键命名主键命名:PK_表名_字段名(如果存在多字段主键,取每字段前三个字符加下划线组合,如:在 hyid,hyname,hymobile 上建立主键,命名:PK_表名_hyi_hyn_hym,如果前三个截取字符相同,就从字段名称中不同的字符开始取三个字符加下划线组合,如:在zhyid,zhyname,zhymobile 上建立主键,命名:PK_表_id_nam_mob)3.1.93.1.9 外键命名外键命名:FK_表名_主表名_字段名3.1.103.1.10Sequence
8、Sequence 命名命名:SEQ_表名_列名(或者根据需要另取名字)3.23.2 设计原则设计原则3.2.13.2.1 表的设计表的设计【强制】每个表,都必须要有主键。主键是每行数据的唯一标识,保证主键不可随意更新修改,在不知道是否需要主键的时候,请加上主键,它会为你的程序以及将来查找数据中的错误等等,提供一定的帮助;【强制】所有的 MySQL 数据库除历史原因外,都必须采用UTF8 编码【建议】一个表的某列与另一表有关联关系的时候,请在应用程序维护外键关系,如果-可修编.-在数据库建立外键约束请遵循以下几点:尽量少使用外键,在高并发下数据库会增加较大开销;不要以数据操作不方便为理由而不建外
9、键。加上外键以后,一些数据操作变得有些麻烦,但是这正是对数据一致性的保护以缺省的方式建立外键(即用delete restrict 方式),以达到保护数据一致性的目的;【强制】外键一定要建立索引。【建议】单表行数超过 500 万行或者单表容量超过 2GB,才推荐进行分库分表3.2.23.2.2 列的设计列的设计【强制】字段命名必须用英文来定义,如果太长可用缩写;【强制】相应类型数据存入相应类型字段(如:数字=NUMBER,日期=DATE,定长字符=CHAR,变长字符=VARCHAR2 等)否则会自动进行不必要的类型转换,降低性能,破坏数据完整性【强制】表达是与否概念的字段,必须使用 is_xxx
10、 的方式命名,数据类型是 unsigned tinyint(1 表示是,0 表示否)【强制】小数类型为 decimal,禁止使用 float 和 double【建议】varchar 是可变长字符串,不预先分配存储空间,长度不要超过5000,如果存储长度大于此值,定义字段类型为 text,独立出来一 X 表,用主键来对应,避免影响其它字段索引效率【建议】字段的宽度要在一定时间内足够用,但也不要过宽,占用过多的存储空间;【建议】除非必要,否则尽量不加冗余列。所谓冗余列,是指能通过其他列计算出来的列,或者是与某列表达同一含义的列,或者是从其他表复制过来的列等等。冗余列需要应用程序来维护一致性,相关列
11、的值改变的时候,冗余列也需要随之修改,而这一规则未必所有人都知道,就有可能因此发生不一致的情况。如果是应用的特殊需要,或者是为了优化某些逻辑很复杂的查询等操作,可以加冗余列;3.2.33.2.3 索引的设计索引的设计【强制】业务上具有唯一特性的字段,即使是组合字段,也必须建成唯一索引【强制】超过三个表禁止 join。需要 join 的字段,数据类型保持绝对一致;多表关联-可修编.-【强制】查询时,保证被关联的字段需要有索引【强制】在 varchar 字段上建立索引时,必须指定索引长度,没必要对全字段建立索引,【强制】页面搜索严禁左模糊或者全模糊,如果需要请走搜索引擎来解决【强制】如果有 ord
12、er by 的场景,请注意利用索引的有序性。order by 最后的字段是组合索引的一部分,并且放在索引组合顺序的最后,避免出现file_sort 的情况,影响查询性能。正例:where a=?and b=?order by c;索引:a_b_c【强制】建组合索引的时候,区分度最高的在最左边【建议】性能测试阶段收集 90%SQL 后,统一设计建立索引【建议】根据实际文本区分度决定索引长度。说明:索引的长度与区分度是一对矛盾体,一般对字符串类型数据,长度为 20 的索引,区分度会高达 90%以上,可以使用 count(distinct left(列名,索引长度)/count(*)的区分度来确定。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 管理 规范
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内