openGauss 数据库存储概览
文章来源于墨天轮:https://www.modb.pro/db/165300
早期计算机程序通过文件系统管理数据,到了20世纪60年代这种方式就开始不能满足数据管理要求了,用户逐渐对数据并发写入的完整性、高效的检索提出更高的要求。由于机械磁盘的随机读写性能问题,从20世纪80年代开始,大多数数据库一直在围绕着减少随机读写磁盘进行设计。主要思路是把对数据页面的随机写盘转化为对WAL(Write Ahead Log)的顺序写盘,WAL持久化完成,事务就算提交成功,数据页面异步将数据刷新到磁盘上。但是随着内存容量变大、保电内存、非易失性内存的发展,以及SSD(Solid State Disk,固态硬盘)技术逐渐的成熟,IO性能得到极大提高,经历了几十年发展的存储引擎需要调整架构来发挥SSD的性能和充分利用大内存计算的优势。随着互联网、移动互联网的发展,数据量剧增,业务场景多样化,一套固定不变的存储引擎不可能满足所有应用场景的诉求。因此现在的DBMS需要设计支持多种存储引擎,根据业务场景来选择合适的存储模型。
1. 数据库存储引擎要解决的问题
数据库存储引擎要解决的问题如下:
(1) 存储的数据必须要保证:原子性(A)、一致性(C)、隔离性(I)、持久性(D)。
(2) 高并发读写,高性能。
(3) 充分发挥硬件的性能,解决数据的高效存储和检索能力。
2. openGauss存储引擎概述
openGauss整个系统设计是可插拔、自组装的,支持多个存储引擎来满足不同场景的业务诉求。当前openGauss存储引擎有以下3种:
(1) 行存储引擎,主要面向OLTP场景设计,例如订货、发货、银行交易系统。
(2) 列存储引擎,主要面向OLAP场景设计,例如数据统计报表分析。
(3) 内存引擎,主要面向极致性能场景设计,例如银行风控场景。
创建表的时候可以指定为行存储引擎表、列存引擎表、内存引擎表,支持一个事务里包含对三种引擎表的DML操作,可以保证事务的ACID性质。
- 2016-11-16 关于ORA-20315数据库攻击事件的核心 AfterConnect.sql
- 2016-11-16 【红色警报】近期Oracle数据库遭受比特币勒索攻击原因揭秘和预防
- 2012-11-16 ACOUG 2012广州站和中山大学深圳职院校园行
- 2010-11-16 Oracle数据库恢复:归档日志损坏案例一则
- 2009-11-16 恩墨科技拟招聘一名Oracle数据库工程师
- 2009-11-16 Oracle将Metalink站点迁移到My Oracle Support
- 2008-11-16 SUN公司以及Mysql开源数据库的未来
- 2007-11-16 打针、吃糖丸-Baby安华医院游记
- 2006-11-16 言论:内容封锁还是技术难题?
- 2006-11-16 推荐下载“2006 OTN 精选”CD
- 2005-11-16 Oracle HowTo:如何确定Oracle是32 Bit(位)的还是64 Bit(位)的?
- 2005-11-16 推荐Kamus的新Blog
- 2005-11-16 你从哪里来,我的朋友?
- 2005-11-16 终于我有自己的blog site了