元数据

深入浅出存储引擎

  •  深入浅出存储引擎|200
  • 书名: 深入浅出存储引擎
  • 作者: 文小飞
  • 简介: 全书分为3篇: 1.第1篇首先会详细讲解存储引擎的全貌,让读者能对存储引擎有一个整体的思维框架,介绍存储引擎的两大分支:基于b+树的存储引擎、基于lsm派系的存储引擎,其次对存储引擎部分涉及的一些数据结构、存储介质等概念做一个简要的介绍,为后面内容的深入学习做铺垫。 2.第二篇主要介绍基于b+树的存储引擎,在理论部分重点回答为什么选择b+树做存储引擎索引结构、b+树存储引擎解决哪些问题以及如何解决。在实践部分选择开源社区中比较有名的boltdb存储引擎项目来讲解其内部核心源码的实现细节。 3.第三篇主要介绍基于lsm派系的存储引擎,理论部分重点介绍lsm tree中各组件的功能及作用,并在此基础上扩展介绍其他几类lsm派系存储引擎的实现思路,帮助读者开阔视野,实践部分分别以bitcask、moss、leveldb等开源项目的核心源码来展开,介绍其内部实现细节。 通过阅读本书,读者不仅能对存储引擎,尤其是单机的存储引擎有一个整体的框架,而且能对两类存储引擎的实现思路及背后原理有个深刻的掌握,只有深刻理解了存储引擎的背后实现原理,读者不仅可以自己动手开发自己的存储引擎,更可以很快掌握关系型数据库或者NoSql这类组件的核心原理,对未来实际应用与开发提供参考。
  • 出版时间: 2024-04-25 00:00:00
  • ISBN: 9787111753001
  • 分类: 计算机-计算机综合
  • 出版社: 机械工业出版社
  • PC地址:https://weread.qq.com/web/reader/d36327a0813ab9069g011ffa

高亮划线

读书笔记

1.1 数据存储体系

划线评论

📌 再后来,20世纪80年代至90年代涌现出大量的SQL数据库产品,例如Oracle、DB2、SQL Server、PostgreSQL、MySQL等。

SQL数据库按照以“行”为单位的二维表格存储数据,这种方式最符合现实世界中的实体,同时通过事务的支持为数据的一致性提供了非常好的保证。这既是SQL数据库的优势,也是它的缺陷。在面对海量数据存储、高并发访问的场景下,SQL数据库的扩展性和性能会受到限制。随着互联网的飞速发展,到2000年左右,存储海量数据、高并发处理读/写的需求变得非常强烈,这对SQL数据库提出了巨大的挑战。为了解决这个问题,出现了支持数据可扩展性、最终一致性的NoSQL数据库。因此,NoSQL数据库可以看作基于SQL数据库的缺陷而诞生的一种新产品。

2.NoSQL数据库

NoSQL组件普遍选择牺牲复杂SQL的支持及ACID事务功能,以换取弹性扩展能力和更高的读/写性能。这类 ^15826765-7XZYkDt42 - 💭 - ⏱ 2025-02-16 11:21:28

划线评论

📌 再后来,20世纪80年代至90年代涌现出大量的SQL数据库产品,例如Oracle、DB2、SQL Server、PostgreSQL、MySQL等。

SQL数据库按照以“行”为单位的二维表格存储数据,这种方式最符合现实世界中的实体,同时通过事务的支持为数据的一致性提供了非常好的保证。这既是SQL数据库的优势,也是它的缺陷。在面对海量数据存储、高并发访问的场景下,SQL数据库的扩展性和性能会受到限制。随着互联网的飞速发展,到2000年左右,存储海量数据、高并发处理读/写的需求变得非常强烈,这对SQL数据库提出了巨大的挑战。为了解决这个问题,出现了支持数据可扩展性、最终一致性的NoSQL数据库。因此,NoSQL数据库可以看作基于SQL数据库的缺陷而诞生的一种新产品。

2.NoSQL数据库

NoSQL组件普遍选择牺牲复杂SQL的支持及ACID事务功能,以换取弹性扩展能力和更高的读/写性能。这类系统主要存储半结构化或非结构化数据。 ^15826765-7XZYk1Wk5 - 💭 - ⏱ 2025-02-16 11:21:19

划线评论

📌 (2)键值数据库

键值数据库也就是一般意义上的KV数据库,它提供的功能和数据结构中的哈希(Hash)表类似。通常添加或更新数据时调用Put(k,v)接口,而在检索和删除时都只需要传入k即可。一般用Get(k)接口来获取数据,用Delete(k)接口来删除数据。这类数据库最为常用的是Redis,此外还有Riak、Amazon DynamoDB等。这类数据库的主要特点是读/写性能超高,系统内部可以支持弹性扩展,主要适用于对性能要求比较高的单点读/写场景,例如推荐系统,用于存储用户或物品特征、用户对内容的互动信息(点赞数、收藏数)等。

(3)图数据库

图数据库是一种使用图数据结构进行语义查询的数据库。图是一组点和边的集合,“点”表示实体,“边”表示实体间的关系,图数据库通过点和边来存储数据。鉴于它采用独特的图数据结构组织数据,类似于现实世界中的人际关系、交通网络,因此这类数据库比较适用于社交网 ^15826765-7XZYlfFqN - 💭 - ⏱ 2025-02-16 11:21:37

本书评论