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

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

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


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


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


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

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的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
目录
相关文章
|
存储 关系型数据库 MySQL
大数据新视界--大数据大厂之MySQL 数据库课程设计:开启数据宇宙的传奇之旅
本文全面剖析数据库课程设计 MySQL,展现其奇幻魅力与严峻挑战。通过实际案例凸显数据库设计重要性,详述数据安全要点及学习目标。深入阐述备份与恢复方法,并分享优秀实践项目案例。为开发者提供 MySQL 数据库课程设计的全面指南,助力提升数据库设计与管理能力,保障数据安全稳定。
大数据新视界--大数据大厂之MySQL 数据库课程设计:开启数据宇宙的传奇之旅
|
负载均衡 算法 关系型数据库
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
本文聚焦 MySQL 集群架构中的负载均衡算法,阐述其重要性。详细介绍轮询、加权轮询、最少连接、加权最少连接、随机、源地址哈希等常用算法,分析各自优缺点及适用场景。并提供 Java 语言代码实现示例,助力直观理解。文章结构清晰,语言通俗易懂,对理解和应用负载均衡算法具有实用价值和参考价值。
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
|
存储 关系型数据库 MySQL
大数据新视界 --面向数据分析师的大数据大厂之 MySQL 基础秘籍:轻松创建数据库与表,踏入大数据殿堂
本文详细介绍了在 MySQL 中创建数据库和表的方法。包括安装 MySQL、用命令行和图形化工具创建数据库、选择数据库、创建表(含数据类型介绍与选择建议、案例分析、最佳实践与注意事项)以及查看数据库和表的内容。文章专业、严谨且具可操作性,对数据管理有实际帮助。
大数据新视界 --面向数据分析师的大数据大厂之 MySQL 基础秘籍:轻松创建数据库与表,踏入大数据殿堂
|
关系型数据库 MySQL 数据安全/隐私保护
大数据新视界--大数据大厂之MySQL 数据库课程设计:数据安全深度剖析与未来展望
本文深入探讨数据库课程设计 MySQL 的数据安全。以医疗、电商、企业案例,详述用户管理、数据加密、备份恢复及网络安全等措施,结合数据安全技术发展趋势,与《大数据新视界 -- 大数据大厂之 MySQL 数据库课程设计》紧密关联,为 MySQL 数据安全提供全面指南。
大数据新视界--大数据大厂之MySQL 数据库课程设计:数据安全深度剖析与未来展望
|
负载均衡 算法 关系型数据库
大数据新视界--大数据大厂之MySQL数据库课程设计:MySQL集群架构负载均衡故障排除与解决方案
本文深入探讨 MySQL 集群架构负载均衡的常见故障及排除方法。涵盖请求分配不均、节点无法响应、负载均衡器故障等现象,介绍多种负载均衡算法及故障排除步骤,包括检查负载均衡器状态、调整算法、诊断修复节点故障等。还阐述了预防措施与确保系统稳定性的方法,如定期监控维护、备份恢复策略、团队协作与知识管理等。为确保 MySQL 数据库系统高可用性提供全面指导。
|
SQL 关系型数据库 MySQL
大数据新视界--大数据大厂之MySQL数据库课程设计:MySQL 数据库 SQL 语句调优方法详解(2-1)
本文深入介绍 MySQL 数据库 SQL 语句调优方法。涵盖分析查询执行计划,如使用 EXPLAIN 命令及理解关键指标;优化查询语句结构,包括避免子查询、减少函数使用、合理用索引列及避免 “OR”。还介绍了索引类型知识,如 B 树索引、哈希索引等。结合与 MySQL 数据库课程设计相关文章,强调 SQL 语句调优重要性。为提升数据库性能提供实用方法,适合数据库管理员和开发人员。
|
关系型数据库 MySQL 大数据
大数据新视界--大数据大厂之MySQL 数据库课程设计:MySQL 数据库 SQL 语句调优的进阶策略与实际案例(2-2)
本文延续前篇,深入探讨 MySQL 数据库 SQL 语句调优进阶策略。包括优化索引使用,介绍多种索引类型及避免索引失效等;调整数据库参数,如缓冲池、连接数和日志参数;还有分区表、垂直拆分等其他优化方法。通过实际案例分析展示调优效果。回顾与数据库课程设计相关文章,强调全面认识 MySQL 数据库重要性。为读者提供综合调优指导,确保数据库高效运行。
|
9月前
|
机器学习/深度学习 传感器 分布式计算
数据才是真救命的:聊聊如何用大数据提升灾难预警的精准度
数据才是真救命的:聊聊如何用大数据提升灾难预警的精准度
608 14
|
11月前
|
数据采集 分布式计算 DataWorks
ODPS在某公共数据项目上的实践
本项目基于公共数据定义及ODPS与DataWorks技术,构建一体化智能化数据平台,涵盖数据目录、归集、治理、共享与开放六大目标。通过十大子系统实现全流程管理,强化数据安全与流通,提升业务效率与决策能力,助力数字化改革。
381 4
|
10月前
|
机器学习/深度学习 运维 监控
运维不怕事多,就怕没数据——用大数据喂饱你的运维策略
运维不怕事多,就怕没数据——用大数据喂饱你的运维策略
921 0