业务系统数据库设计常见的隔离和共享模式

简介:

多年开发和维护某些业务系统的经验,让人真正理解了什么叫“数据库设计良好,系统就成功了一半”,尤其是那些面向多商户或多租户的基础服务平台、公共服务平台、开放服务平台、或者由它们组合而成的综合服务平台。数据库设计之初,必须对业务系统DB的隔离和共享模式的优缺有充分的调研,平衡好业务系统的边界,合理设计使用必要的冗余,以适应系统后续的不断变化,否则后期开发人员将陷入无尽的烦恼和痛苦之中,这绝不是危言耸听,只有开发和维护过平台类产品的人才能深刻体会。下面就介绍三种业务系统中最常见的数据库设计的隔离和共享模式:

一、共享Database,共享Schema

很多开发人员最熟悉的一种模式,没错,很可能你在大学的时候写的第一个MIS就是用的这种模式。

某些家伙认为这种模式没啥技术含量,但是,如果你的业务系统要兼容很多业务端的需求,当你选择这种模式的时候,用好了并不容易,尤其是当业务数据量非常大而且需求还在不断变化的时候,会有各种各样的问题暴露出来。

下面分析这种共享模式的主要优缺点:

1、优点

a.前期开发相对容易,单库单表的增删改查,喜闻乐见,注意,我这里说的是前期开发较容易

b.较容易做读写分离、备份和还原

c.能最大化利用DB服务器资源

d.DBA监控和运维管理也非常简单 

2、缺点

a.后期开发和维护会非常痛苦,各种复杂业务共享数据库,不同商户业务逻辑的差异很容易引发开发上的BUG,尤其是牵一发而动全身的公共服务系统

b.单库的容量终究有限,不能适应业务数据量的快速增长

c.多商户业务逻辑不一致,表设计时字段冗余不可避免

d.不利于自定义数据模型,可伸缩性受限制

e.无法对业务层进行横向扩展,某些场景下想通过一个库单张表搞定所有业务逻辑,开发人员只能呵呵了

 

二、独立Database

这个也很常见,直接理解就是为每个业务端独立使用各自的数据库,互不干扰。它的优缺点非常明显。

下面分析这种独立模式的主要优缺点:

1、优点

a.和特定商户业务系统联系更紧密

b.前后期开发和维护都很容易

c.利于业务系统拆分和整合

d.各商户业务数据相对独立,各子系统对其他商户业务系统无影响

e.分流业务系统数据,间接实现了集中数据的分片和纵向扩展

f.性能可能更好,只是可能

2、缺点

a.软硬件成本增加

b.不可避免的重复,主要有重复的数据库设计和业务逻辑,还有独立的后台业务支持系统,总结起来就是一句话,重复的劳动需要更多的人力资源投入

c.DBA管理压力增大,更多的库更多的表需要监控和运维

 

三、共享Database独立Schema

这种模式是一种设计上的平衡,兼有共享和独立模式的各自主要优点。

下面分析这种兼有共享和独立特性的模式的主要优缺点:

1、优点

a.虽然是单库,但根据不同商户进行了特殊业务的拆分,减少了冗余的数据库和数据表的设计和开发,性价比更高

b.纵向扩展非常容易,业务拆分更简单,只要将多商户共享和单个商户特定使用的表独立出去就行

 

2、缺点

a.表设计要求更高,要设计和平衡好有限扩展和无限扩展的可能,否则后续维护会发现还不如完全共享或者完全独立模式来的容易

b.业务数据集中,但表设计分散,后台系统如配置管理系统、统计分析系统很难做到共享模式的便利

 

总结:上面是最常见的业务系统数据库模式,共享和独立并不矛盾,各有自己特定的优缺点,它们依然属于集中式数据设计和管理的范畴,要按照业务系统的现状来选择模式。当然,后期业务系统的不断发展,数据量日益庞大,集中式的数据模式就会爆发很多问题(天花板效应),横向扩展只是一个时间问题,从数据库设计的角度,将DB由集中式改造为分布式(横向扩展)才是永恒的难题。






本文转自JeffWong博客园博客,原文链接:http://www.cnblogs.com/jeffwongishandsome/p/talk-about-share-isolated-pattern-in-db-design.html,如需转载请自行联系原作者

目录
相关文章
|
6天前
|
存储 安全 搜索推荐
酒店管理系统的数据库的应用以及选择
酒店管理系统数据库关乎运营效率和服务质量。数据库用于数据存储、管理、分析及客户关系管理,确保房态与预订精准。选择时重视性能稳定性、数据安全、易用性、可扩展性和成本效益。合适的数据库能提升酒店运营效率并优化客户体验。
19 2
|
15天前
|
存储 关系型数据库 MySQL
轻松入门MySQL:数据库设计之范式规范,优化企业管理系统效率(21)
轻松入门MySQL:数据库设计之范式规范,优化企业管理系统效率(21)
|
17天前
|
安全 网络安全 数据库
数据安全之认识数据库漏洞扫描系统
数据库漏洞扫描系统是一种专业的数据库安全产品,它基于对数据库访问控制、数据库审计、资源管理、数据库加密以及数据库系统本身安全机制的深入分析,深入研究和发现数据库系统本身存在的BUG以及数据库管理、使用中存在的问题。
34 4
|
1月前
|
SQL 监控 安全
数据安全之认识数据库审计系统
随着企业业务数据量的不断增长和数据存储的集中化,数据库成为企业的核心资产之一。然而,数据库面临着各种安全威胁,如SQL注入、权限滥用、数据泄露等。为了保障数据库的安全性和完整性,企业需要采取有效的审计措施来监控和记录数据库的操作行为。本文让我们一起来认识数据库审计系统。
31 1
|
24天前
|
存储 SQL 缓存
【软件设计师备考 专题 】数据库模型(概念模式、外模式、内模式)
【软件设计师备考 专题 】数据库模型(概念模式、外模式、内模式)
65 0
|
24天前
|
SQL 存储 安全
【软件设计师备考 专题 】数据库管理系统的功能和特征
【软件设计师备考 专题 】数据库管理系统的功能和特征
72 0
|
28天前
|
SQL 编解码 数据库
MyKtv点歌系统前台主要功能实现,内附数据库脚本,可以直接运行
MyKtv点歌系统前台主要功能实现,内附数据库脚本,可以直接运行
12 1
MyKtv点歌系统前台主要功能实现,内附数据库脚本,可以直接运行
|
28天前
|
存储 分布式计算 大数据
现代化数据库技术——面向大数据的分布式存储系统
传统的关系型数据库在面对大规模数据处理时遇到了诸多挑战,而面向大数据的分布式存储系统应运而生。本文将深入探讨现代化数据库技术中的分布式存储系统,包括其优势、工作原理以及在大数据领域的应用。
|
1月前
|
架构师 算法 关系型数据库
数据库架构师之道:MySQL安装与系统整合指南
数据库架构师之道:MySQL安装与系统整合指南
44 0
|
1月前
|
JavaScript Java 数据库
基于SpringBoot摄影跟拍预定管理系统(系统+数据库+文档)
基于SpringBoot摄影跟拍预定管理系统(系统+数据库+文档)