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

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 数据库设计是整体软件应用系统的根基,必须受到高度重视。培养良好的数据库设计习惯,是一个合格软件工程师应该必备的基本素质。

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


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


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


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

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



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

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps&nbsp;
目录
相关文章
|
1月前
|
数据库 Python
在数据库中的规范设计
【5月更文挑战第16天】关系数据库规范化理论涉及函数依赖和超键概念。函数依赖如X->Y表示X能唯一确定Y。超键是能唯一标识元组的属性集合,候选键是最小超键,无冗余。主键是用户选定的候选键,外键关联不同表的主键。Armstrong公理用于推导函数依赖。数据库范式从1NF到5NF,消除部分和传递依赖,确保数据完整性。实际操作中,反规范化有时用于优化,如增加冗余列、派生列、重组表和分表策略,以提升查询效率和性能。
158 51
在数据库中的规范设计
|
5天前
|
分布式计算 大数据 数据处理
MaxCompute操作报错合集之odps数据库T1有几百行的数据,为什么出来只有5行的数据
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
|
19天前
|
存储 NoSQL 大数据
NoSQL数据库在大数据处理场景下如何评估其性能?
【6月更文挑战第10天】NoSQL数据库在大数据处理场景下如何评估其性能?
14 2
|
25天前
|
存储 数据采集 NoSQL
DTS在迁移大数据量的MongoDB数据库时如何保证数据的准确性和完整性?
【6月更文挑战第4天】DTS在迁移大数据量的MongoDB数据库时如何保证数据的准确性和完整性?
98 1
|
5天前
|
SQL 分布式计算 MaxCompute
MaxCompute操作报错合集之通过UDF(用户定义函数)请求外部数据库资源并遇到报错,是什么原因
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
|
1月前
|
关系型数据库 数据库
关系型数据库设计规范第三范式(3NF)
【5月更文挑战第14天】关系型数据库设计规范第三范式(3NF)
39 3
|
16天前
|
存储 分布式计算 Hadoop
【大数据】分布式数据库HBase下载安装教程
【大数据】分布式数据库HBase下载安装教程
28 0
|
16天前
|
存储 缓存 大数据
【大数据】分布式数据库HBase
【大数据】分布式数据库HBase
47 0
|
19天前
|
存储 SQL 分布式计算
MaxCompute产品使用合集之作业性能优化的规范包括哪些
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
21天前
|
分布式计算 DataWorks 关系型数据库
MaxCompute产品使用合集之DataWorks是否支持通过SQL方式在MaxCompute中查询数据,并通过数据集成服务将查询结果同步至MySQL数据库
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。

热门文章

最新文章