简明的数据库设计模式

设计一个数据库存储模式时,要仔细分析数据模式,不要把所有的数据都放在一起。否则对系统的可用性,高效能,扩展性都会有严重的影响。当然你设计的系统非常小,完全可以用最简单的方法。

要通过对业务的熟练,从不同的角度对数据进行多维度分析,一般可以从如下几个方向分析:

1.       数据流向

2.       数据访问特点

3.       数据量的大小

4.       数据的增长量

5.       数据的生命周期

根据以上数据特点,综合数据模式对数据表进行分类:

1.       恒数表

2.       递增表

3.       流水表

4.       状态表

5.       核心表

6.       过程表

在我们进行大数据量系统的模型设计时,根据不同的数据表,必须要遵循这几个要点。

核心表:

核心表是系统访问最频繁的,在设计时要考虑访问的代价,一定要遵循范式,注意字段的个数和字段长度,注意范围查询。如果核心表的数据量很大的话,要根据分区表或表路由等方式进行数据归档,以保证核心表的性能。

过程表:

过程表顾名思义是用来记录某一过程的,一般指数据的生命周期;在设计过程表时要设计一个明显代表数据生命周期的字段,对于数据仓库系统更是要合理的利用生命周期字段,可以高效的统计不同生命周期的数据;在设计表时也要考虑增删改的代价,插入的代价最小,修改需要检索数据保留修改字段值,删除要保留整条记录,代价最为昂贵。

恒数表:

恒数表几乎很少变化,类似我们使用字典表,在设计这样的表时,要设计好表的参数,较小的表就不建议建立索引。

递增表:

递增表的增长是很快的,并不是所有的数据都是常用的,所以分区的大小要尽量均衡,严格区分核心数据和过程数据,索引的键值选择性尽量高,谨慎使用复合索引,按照关联关系设计合适的分区和索引。

流水表:

流水表类似记录log,记录些流水信息,流水表数据量一般都很大,信息几乎没有变更。在设计时要注意分区的粒度和选择,一般不建议建立太多的索引。

状态表:

状态表一般指记录某一行为的状态过程,生命周期很短,很容易和过程表混淆。可以简单区别它们,状态表是动作行为的轨迹;过程表是数据的生命周期。

时间: 2024-11-07 16:23:07

简明的数据库设计模式的相关文章

多租户SaaS的数据库设计模式

前言 在设计多租户SaaS应用程序时,您必须仔细选择最适合您应用程序需求的租户模型.租户模型确定每个租户的数据如何映射到存储.您选择的租户模式会影响应用程序设计和管理.以后切换到另一个模型有时代价昂贵. 关于可选择的租户模型的讨论如下. A,怎么选择一个合适的租户模型 一般来说,租赁模式不会影响应用程序的功能,但它可能会影响整体解决方案的其他方面.以下标准用于评估每个模型: 可扩展性(Scalability) 租户的数量级 每个租户的存储级别 整体存储 工作负载 租户隔离性(Tenant iso

[ 转载 ] [Java面经]干货整理, Java面试题(覆盖Java基础,Java高级,JavaEE,数据库,设计模式等)

http://www.cnblogs.com/wang-meng/p/5898837.html 原文地址:https://www.cnblogs.com/ILoke-Yang/p/8137408.html

【转】分布式数据库拆表拆库的常用策略

转载:http://www.cnblogs.com/VipBin/archive/2011/07/12/2104690.html 在大容量,高负荷的web系统中,对数据库进行一系列拆分,可有效提升数据库容量和性能.在初学程序的早期,程序员通常都喜欢按传统数据库设计模式,设计为单库和单一功能表的结构,这样的结构在数据量和并发量达到一定程度之后,会出现严重性能问题和维护问题.在出现问题的时候才着手进行优化,会非常痛苦,所以应该在系统架设之初就考虑好之后会出现的问题. 目前有些数据库策略是采用单库结构

NoSQL数据库介绍(3)

3 基本概念,技术和模式 本章概述了一些NoSQL数据存储常见的基本概念.技术与模式,并不仅限于一类非关系型数据库或一个单一的NoSQL存储.众多NoSQL数据存储和个别产品的具体概念和技术将在随后的章节中讨论. 3.1 一致性 3.1.1 CAP理论 在2000年的ACM PODC研讨会上主题为"走向鲁棒的分布式系统"的演示文稿中,Eric Brewer提出了所谓的CAP理论([ Bre00 ]),它目前在大型网络公司(如Amazon,参见[ Vog07 ].[ Vog08 ])以及

NoSQL数据库相关概念

NoSQL数据库概述 特点 模式自由 不需要定义表结构,数据表中的每条记录 都可能有不同的属性和格式. 逆范式化 不遵循范式要求,去掉完整性约束,减少 表之间的依赖. 多分区存储 数据进行分区,将记录分散到多个节点上 弹性可扩展 可在系统运行过程中,动态增 加和删除节点,数据自动平衡移动. 多副本 数据快速写入一个节点,其余 节点通过读取写入节点日志来 实现异步复制. 软事务 不能完全满足事务的ACID特性,保证事务的最终一致性. ACID: 关系型数据库遵循ACID规则 事务在英文中是tran

数据库理论

RDBMS vs NoSQL RDBMS - 高度组织化结构化数据 - 结构化查询语言(SQL) (SQL) - 数据和关系都存储在单独的表中. - 数据操纵语言,数据定义语言 - 严格的一致性- 基础事务 NoSQL - 代表着不仅仅是SQL- 没有声明性查询语言- 没有预定义的模式-键 - 值对存储,列存储,文档存储,图形数据库- 最终一致性,而非ACID属性- 非结构化和不可预知的数据- CAP定理 - 高性能,高可用性和可伸缩性 关系型数据库遵循ACID规则 事务在英文中是transac

数据库概述及基本操作

一 概念 1 数据库诞生和发展历史 数据库: 按照数据结构来组织,存储,管理数据的仓库 诞生计算机的发明是为了做科学计算的,而科学计算需要大量的数据输入和输出.早期是通过打孔机和灯泡来表示数据的输入和输出.后来,数据可以存储在磁带上,顺序的读,写入磁带1956年IBM发明了磁盘驱动器,其支持了随机访问,不再是之前的顺序访问.随着信息时代的到来,有了硬件存储技术的发展,有大量的数据需要存储和管理,数据库管理系统DBMS就诞生了.不管使用什么存储介质,数据库的数据模型才是其核心和基础. 2 早期数据

MongoDB资料汇总(转)

原文:MongoDB资料汇总 上一篇Redis资料汇总专题很受大家欢迎,这里将MongoDB的系列资料也进行了简单整理.希望能对大家有用. 最后更新时间:2013-04-22 1.MongoDB是什么 MongoDB介绍PPT分享 MongoDB GridFS介绍PPT两则 初识 MongoDB GridFS MongoDB GridFS 介绍 一个NoSQL与MongoDB的介绍PPT MongoDB:下一代MySQL? 写给Python程序员的MongoDB介绍 又一篇给Python程序员的

MongoDB资料汇总专题

1.MongoDB是什么 MongoDB介绍PPT分享 MongoDB GridFS介绍PPT两则 初识 MongoDB GridFS MongoDB GridFS 介绍 一个NoSQL与MongoDB的介绍PPT MongoDB:下一代MySQL? 写给Python程序员的MongoDB介绍 又一篇给Python程序员的MongoDB教程 MongoDB源码研究系列文章 白话MongoDB系列文章 MongoDB Tailable Cursors 特性介绍 MongoDB 文档阅读笔记 ——