当前位置:主页 > 查看内容

大数据时代下的存储技术---数据库设计规范

发布时间:2021-06-17 00:00| 位朋友查看

简介:大数据时代 互联网中每天数以亿计的数据在产生和流转。那么 有用的数据如何被保存下来 如何用于归纳总结 如何用于支撑生产 这就需要大数据存储空间---数据库来完成。 数据库是应用系统中非常重要的一个组成部分 数据库的性能是否高效直接影响到应用系统的性……

大数据时代 互联网中每天数以亿计的数据在产生和流转。那么 有用的数据如何被保存下来 如何用于归纳总结 如何用于支撑生产 这就需要大数据存储空间---数据库来完成。


数据库是应用系统中非常重要的一个组成部分 数据库的性能是否高效直接影响到应用系统的性能。在数字化时代 客户对应用系统的交互速度、整体性能的要求越来越高 这就对数据库整体设计提出较高的要求。


所以 数据库设计必须遵循一定的规则 良好的数据库设计与其系统应用设计是相辅相成的。好的数据库设计能够合理利用数据的存储空间、保证数据的完整性、减少数据冗余、方便进行数据库应用系统的开发、以及提高系统的使用性能。


大数据时代的数据库需要满足以下要求

1.支持高并发

? ?根据实际应用的需要 数据库需要满足大数据量交互需求 估算使用接口压力和数据库并发需求。

2.支持负载均衡

? ? 根据实际使用 制定数据库部署架构与负载均衡策略 制定超过支撑能力的快速扩容机制。

3.实现数据读写分享

? ?制定读写分离策略 确定写功能节点和读功能结点 设计读写功能的切换流程 保证数据库功能的正常使用。

4.实现数据库的高可用

? ? 利用大数据集群技术、负载均衡策略和容灾计划 确保数据库读写无故障运行。


综上所述 数据库的设计规范是多方面的 其中特别需要注意的有三方面 表设计规范、索引设计规范、SQL语句规范。


image.png

一、表设计规范

数据库表是存放数据的地方 遵循一定规律设计的数据库表 才能进行快速有效的数据读取 方便数据管理 提高系统可维护性、可理解性。否则数据存储就会杂乱无章 存储和读取都会非常混乱。


数据库表主要指标项的要求

? 命名 库名、表名、字段名均小写 下划线风格?

? 引擎 存储引擎尽量使用 InnoDB?

? 字符集 使用 utf8mb4 字符集?

? 列数 建议40个以内?

? 必要字段 主键、添加时间、更新时间?


数据库表设计的注意事项 ?

? 尽量不使用外键 如果有外键完整性约束 需要应用程序控制?

? 不用保留字 如 DESC、RANGE、MARCH 等?

? 把字段定义为 NOT NULL 并且提供默认值?

? 如果存储的字符串长度几乎相等 使用 CHAR 定长字符串类型?

? 在一些场景下 考虑使用 TIMESTAMP 代替 DATETIME


二、索引设计规范

数据库的索引 是指在一定范围内对数据进行排序 使之能对检索应用做出快速响应。索引是影响数据库应用性能的主要原因之一。


数据库索引设计细节

索引数 表的索引数建议不要超过6个?

索引类型选择?

? Normal 普通索引?

? Unique 唯一索引?

? Full Text 全文索引?

? SPATIAL 空间索引?

索引方法?

? BTREE?

? HASH ”,”IN”和” ?

索引原则?

? 尽量选择唯一性索引?

? 为经常排序、分组、联合操作的字段建立索引?

? 区分度底的类型 不宜建立单独索引?

? VARCHAR 类型 尽量考虑索引长度 不进行全文建索引?

? 联合索引 将区分度更高的字段放在左边


三、SQL语句规范

使用标准化的SQL语言 使数据库的针对性操作更容易 并且学习成本是较低的。使用统一的SQL语言 能极大地减轻维护人员的工作量 也能辅助提高开发人员的开发效率 增加代码的复用性。SQL语句规范设计是数据库性能主要原因之一 同时也是数据安全使用的基础。


SQL语句规范细节要求

减少面向数据库编程 减少使用自定义函数、存储函数、用户变量?

? Select * 在查询中指定所需的列 而不是直接使用“ *”返回所有的列?

? ORDER BY 要利用索引的有序性?

? JOIN 数据类型必须绝对一致 字段类型、字段长度、字符集、Collection 最多五个以内?

? Where ?

? 索引列是表达式一部分 不能使用索引?

? 不要使用属性隐式转换?

? 应尽量避免在 WHERE 子句中使用 or 作为连接条件,UNION ALL?

? 减少使用 % 开头的模糊查询 可以最左前缀匹配原则?

? 减少 ! 、not in 操作符 MySQL只有对以下操作符才使用索引 BETWEEN IN 以及某些时候的LIKE



数据库设计是软件应用系统的根基 必须受到高度重视。培养良好的数据库设计习惯 是一个合格软件工程师应该必备的基本素质。


本文转自网络,原文链接:https://developer.aliyun.com/article/784744
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!

推荐图文

  • 周排行
  • 月排行
  • 总排行

随机推荐