开源数据库 - mysql - 组织结构(与oracle的区别)

组织形式区别

mysql(Schema -> Table -> Column -> Row

  1. Schema(方案)
    • Scheme是关于数据库和表的布局及特性的信息。
    • 它可以用来描述数据库中特定的表以及整个数据库和其中表的信息,如表的一些特性、数据如何在表中存储、数据如何分解、各部分信息如何命名等。
    • 一个MySQL服务器可以拥有多个Schema(方案),每个Scheme下可以定义多个Table(表)。
  2. Table(表)
    • 表是某种特定类型数据的结构化清单。
    • 它由行和列组成,用于存储具有相同属性的数据。
    • 在MySQL中,每个表都有一个唯一的名称,并存储在特定的Scheme下。
  3. Column(列)
    • 列是表中的一个字段,用于存储特定类型的数据。
    • 每个列都有相应的数据类型,这限制了该列中可以存储的数据种类。
  4. Row(行)
    • 行是表中的一个记录,用于存储一组相关的数据。
    • 每行数据都包含与表结构相匹配的多个列的值。

因此,更完整的MySQL数据组织层次结构应该是Schema -> Table -> Column -> Row。在这个层次结构中,Scheme定义了数据库的结构和特性,Table是存储数据的容器,Column定义了数据的类型和结构,而Row则是实际存储的数据记录。

mysql中(innodb作为引擎)可以通过启用InnoDB的innodb_file_per_table参数将每一个table放在单独的一张表中

oracle(表空间(Tablespace)-> 段(Segment)-> 扩展区(Extent)-> 数据块(Data Block)-> 行(Row)

在Oracle数据库中,数据的组织形式与MySQL有所不同,但同样具有层次结构。Oracle数据库的组织形式通常可以理解为:表空间(Tablespace)-> 段(Segment)-> 扩展区(Extent)-> 数据块(Data Block)-> 行(Row)。以下是这一层次结构的详细解释:

  1. 表空间(Tablespace)
    • 表空间是Oracle数据库中的最大逻辑划分区域,用于存放数据库对象,如表、索引、回滚段等。
    • 它将相关的逻辑结构(如段、扩展区等)组合在一起,并映射到物理存储结构中的数据文件上。
    • 一个表空间可以由一个或多个数据文件组成,而一个数据文件只能属于一个表空间。
  2. 段(Segment)
    • 段是由一组相关的数据块组成的逻辑存储结构,用于存储特定的数据库对象,如表、索引或簇等。
    • 每个段都包含一个或多个扩展区,用于存储数据。
    • 在Oracle中,每当创建一个具有独立段的数据对象时,都会为该对象创建一个段。
  3. 扩展区(Extent)
    • 扩展区是由一组连续的Oracle数据块构成的存储结构,用于为段分配存储空间。
    • 一个或多个数据块组成一个扩展区,而一个或多个扩展区再组成一个段。
    • 在Oracle数据库中,分配存储空间是以扩展区为单位进行的。
  4. 数据块(Data Block)
    • 数据块是Oracle数据库中最小的逻辑存储单位,也是执行数据库输入/输出操作的最小存储单位。
    • 它包含了表数据、索引数据和簇数据等,并且具有固定的结构,包括块头、表目录、行目录、空余空间和行数据等部分。
    • 数据块的大小可以在创建数据库时指定,通常为2KB、4KB、8KB等。
  5. 行(Row)
    • 行是数据块中的一个记录,用于存储一组相关的数据。
    • 每行数据都包含与表结构相匹配的多个列的值。
    • 在Oracle中,行是数据的最小存储单位,用于表示数据库中的一个实体记录。

总的来说,Oracle数据库通过这种层次结构来组织和管理数据,使得数据的存储、检索和操作变得更加高效和灵活。每个层次都有其特定的功能和作用,共同构成了Oracle数据库的完整存储体系。

两者对比就可以看出mysql的组织结构相比于oracle要简单很多

相关推荐
痞老板A小安装C431 分钟前
redis的大key和热key问题解决方案
数据库·redis·bootstrap
feilieren34 分钟前
DataGrip 连接 Redis、TongRDS
数据库·redis·缓存
苹果酱056735 分钟前
windows安装redis, 修改自启动的redis服务的密码
java·开发语言·spring boot·mysql·中间件
液态不合群37 分钟前
Redis中常见的数据类型及其应用场景
数据库·redis·wpf
Allen Bright38 分钟前
Jedis存储一个-以String的形式的对象到Redis
数据库·redis·缓存
Allen Bright2 小时前
Jedis存储一个以byte[]的形式的对象到Redis
数据库·redis·缓存
NiNg_1_2342 小时前
Redis中的zset用法详解
数据库·redis·缓存
山山而川粤2 小时前
大连环保公益管理系统|Java|SSM|Vue| 前后端分离
java·开发语言·后端·学习·mysql
尘浮生2 小时前
Java项目实战II基于SpringBoot前后端分离的网吧管理系统(开发文档+数据库+源码)
java·开发语言·数据库·spring boot·后端·微信小程序·小程序
SlothLu3 小时前
Debezium-BinaryLogClient
java·mysql·kafka·binlog·多线程·debezium·数据迁移