当前位置: 首页 > article >正文

【关系型数据库informix底层原理一】

【关系型数据库informix底层原理一】

    • 1. 了解informix历史
    • 2.架构组成【简单了解版】
    • 3. 磁盘
    • 4. tblspace和dbspace的关系
    • 5. 简单大对象
    • 6. 智能大对象
    • 7. 逻辑日志(类似于mysql中的redolog)
    • 8. 物理日志
    • 9.数据缓冲
    • 10.检查点checkpoint

1. 了解informix历史

Informix公司成立于1980年,总部位于美国,是联机交易系统、数据仓库系统和电子商务应用领先的供应商,
2001年,Informix被IBM公司收购,成为IBM软件家族的一员。


2002年,Informix推出9.4版本,特性是chunk文件大小和数量变大变多等


2005年,Informix推出10版本,在处理性能、数据量管理、备份恢复和应用开发方面进行了进一步的改善。


2007年,Infomix推出了11版本;引入了last committed事务隔离级别,进一步增强了数据库并发处理能力;引入灾备的技术Remote Standalone Server;图形化管理和监控工具OpenAdminTool;checkPoint阻塞交易的时间大幅缩短;对存储过程的语言进行了扩展;数据库可以自己调度任务


2008年,Informix推出了11.5版本,存储过程可以使用动态sql语句,可以使用merge语句,层次查询语句、外部表;可以嵌套事务等。

2.架构组成【简单了解版】

  • 进程部分

onint,虚拟进程类 -> 虚拟进程/虚处理器 ,用于完成特定的一类任务。

  • 共享内存部分
    • 驻留段:缓存磁盘中的数据。
    • 虚拟段:维护和控制进程中所使用的资源
    • 消息段:用于共享内存连接诶,适用于应用程序和数据库在同一台机器上的场景。
  • 磁盘部分
    • 给数据库使用一个或多个逻辑卷或文件的集合。这些文件或逻辑卷用来存放系统表或用户数据。

3. 磁盘

操作系统可以管理文件系统,但是数据库可以不使用操作系统的管理策略,而是使用自己的机制来管理空间,这种机制适用于数据库管理。

  • chunk是文件或逻辑卷(裸设备)的代指;
  • chunk被添加到数据库服务器之后,它被分成许多更小的单元,称为页面。页面是数据库服务器的基本io单元,所有的数据都存放在页面上。
  • dbspace,是逻辑分区,逻辑分区下包含多个chunk,当dbspace空间不够时,可以给它增加额外的chunk。数据库和表创建在特定的dbspace上,这意味着dbspace有空间,表和数据库空间就会按其空间的需要增长。每个数据库至少有一个dbspace,称为root dbspace。
  • tblspace:表的数据页面的逻辑组合称为tblspace,不分片表的tablspace总是在一个dbspace上,分片表,每个dbspace上有一个tblspace id编号

4. tblspace和dbspace的关系

dbspace逻辑上由很多chunk组成,这些chunk可以在不同的盘上
dbspace可以存放很多的用户表,每个用户表的tblspace是许多extent逻辑的组合,插一句,一个extent是由连续的页组成的,tblspace中的extent可以在不同的chunk上。

5. 简单大对象

图像、声音和一些源代码文件。这些数据存储上限是2GB。
有两种类型的简单大对象:text和byte。
text数据类型用来存放可打印的二进制文本,byte可以存放任何二进制的数据,如表格、程序装载模块、图像和声音。

6. 智能大对象

smart large object,是存放用户自定义类型的理想场所
smart large object 存放在sbspace上,sbspace也是由一个或多个chunk组成。

7. 逻辑日志(类似于mysql中的redolog)

逻辑日志是一组连续的磁盘空间,用来存放用户的交易记录,如果创建的数据库是记录日志的,交易记录中将包含数据库中所有的变化,所有数据库共享相同的逻辑日志。

8. 物理日志

数据库有一个特殊的日志用来做自动的恢复,这个日志叫做物理日志,物理日志是磁盘上一组连续的空间

在这里插入图片描述
当一个页面被读到内存并修改时,这个页面原来内容会被写到物理日志中,这个页面的拷贝也称为前映像,物理日志只包括缓存中第一次对这个页面的修改,对相同页面的修改将不在物理日志中记录。

9.数据缓冲

数据库需要访问数据时,首先定位数据存在哪里,然后把数据读到缓存池的页面中,一旦这些数据在内存中,如果后面的用户需要访问相同的数据,将直接在内存中访问这些数据,所有的用户可以共享这些数据。


把数据从磁盘读取到共享缓冲池的操作称为数据缓存。

在这里插入图片描述
如果数据库要修改一个页面,将直接在缓冲中进行修改。这意味着所有用户可以立即访问修改的数据。这些修改的数据将再稍微晚一点的时间刷新到磁盘上。

10.检查点checkpoint

当数据从磁盘读到缓冲池中被修改之后,内存和磁盘中的数据将变得不一致,数据库需
要定时地将这两份数据进行同步,这个重新同步的操作称做checkpoint。
checkpoint也为数据库建立了一个恢复的时间点,当系统失败时,只是最后一次
checkpoint之后的数据没有写到磁盘上,数据库的自动恢复机制只恢复最后一次checkpoint
之后的交易。


http://www.kler.cn/news/355174.html

相关文章:

  • ARM嵌入式学习--第三天
  • HUAWEI_HCIA_实验指南_Lib2.1_交换机基础配置
  • cleanmymacX破解版下载 cleanmymacx激活码永久免费 mac电脑免费垃圾清理软件推荐
  • 【web】JDBC
  • 浏览器缓存得学习
  • 【MySQL】MySQL的简单了解详解SQL分类数据库的操纵方法
  • 电脑技巧:优化Edge浏览器占用C盘空间的解决方案
  • linux中vi编辑器中进入编辑模式的三种进入方式a,i,o,A,I,O六种方式的区别
  • JAVA智能代驾跑腿系统一站式服务系统源码小程序
  • django5入门【02】创建新的django程序
  • git版本控制软件,操作方法
  • 【三极管低频放大器添加一级适应负载变化】2021-11-21 11:49
  • ubuntu下安装mysql遇到的问题
  • 第一个servlet程序
  • 高可用之限流-06-slide window 滑动窗口 sentinel 源码
  • 【LeetCode:349. 两个数组的交集 + 哈希表】
  • MySQL(B站CodeWithMosh)——2024.10.12(15)
  • OPC Router快速打通设备层与influxDB数据通讯
  • 矢量网络分析仪工作原理
  • Docker system