图数据存储结构详解

图数据存储初见

最终版权:JDream314 如有转载请贴出出处
       在《图数据挖掘——基本概念》一文中详细的讲了图数据的基本概念,并在图数据挖掘之图信息获取及存储 》一文中描述了图的信息获取,但并没有对图数据的存储进行详细的介绍,该篇将就图数据存储给大家介绍一下,如有不对之处希望多多指出!
        我们都知道图数据主要的信息是节点、边和权重,如何存储这些信息是至关重要的,同时采用何种存储结构对图的还原影响非常大。今天将介绍两种图的存储方式:1)关系数据库存储 2)关系数据库+文本。

        1)关系数据库存储

         如上面的图,我们知道其中有V1、V2、V3、 V4、 V5、 V6节点,同时也有7条边,并对应了各自的权重。如何使用关系数据库来存储这些信息,将在此处给大家介绍。要存储这些信息需要创建一个关系表,第一个就是节点表:用于存储节点的详细信息(节点里面包含的数据),并给节点一个唯一的编号,如1、2、3、4......。另外还要创建一个边关系表:用于存储边的详细信息,我们知道边一般包含两个节点和权重,我们此处称两个节点为起始节点和终止节点。如何将这些信息存储到数据库中,下面将举例说明:
节点关系表
节点编号 节点信息
1 V1
2 V2
3 V3
4 V4
5 V5
6 V6
边关系表
边编号 起始节点编号 终止节点编号
  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
InnoDB 是 MySQL 关系型数据库管理系统的一种存储引擎。它使用了一种称为"多版本并发控制"(MVCC)的技术来提供高性能和高并发性能。下面是 InnoDB 存储引擎的架构详解: 1. 缓冲池(Buffer Pool):InnoDB 使用了一个内存缓冲池来存储数据和索引。这个缓冲池是 InnoDB 存储引擎的关键组件,它用于减少磁盘 I/O 操作,提高性能。当数据被修改时,首先会被写入缓冲池中,然后再由后台线程将其刷新到磁盘。 2. 重做日志(Redo Log):InnoDB 使用了重做日志来保证事务的持久性。重做日志记录了对数据库进行的所有修改操作,包括插入、更新和删除操作。当系统崩溃或发生故障时,可以通过重做日志来恢复数据库的一致性。 3. 数据文件:InnoDB 将数据和索引存储数据文件中。每个表都有一个对应的数据文件,其中包含了表的数据和索引信息。InnoDB 支持自动扩展和自动收缩数据文件的功能。 4. 页(Page):InnoDB 将数据和索引分成固定大小的页来管理。默认情况下,一个页的大小为 16KB。每个页都有一个唯一的标识符,称为页号。InnoDB 使用这些页来存储数据和索引。 5. 事务管理:InnoDB 支持事务的 ACID 特性(原子性、一致性、隔离性和持久性)。它使用了多版本并发控制(MVCC)来实现高并发性能和数据一致性。 6. 锁机制:InnoDB 使用了行级锁来控制并发访问。这意味着多个事务可以同时读取同一张表的不同行,而不会相互阻塞。只有当多个事务尝试修改同一行时,才会发生冲突。 总的来说,InnoDB 存储引擎的架构设计旨在提供高性能、高并发性能和数据一致性。它通过缓冲池、重做日志、数据文件、页、事务管理和锁机制等组件来实现这些目标。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值