 TokuDB索引结构TokuDB索引结构 网易杭州研究院---胡争(博客:openinx.github.io) TokuDB简介 • 基于分形树实现的MySQL存储引擎 • Tokutek公司2007年研发,2013年开源 • 2015年Percona公司收购Tokutek公司 • TokuDB内部的K-V存储引擎为ft-index • TokuMx: ft-index + MongoDB Server层代码 插入性能大大高于InnoDB(分形树vs B+树) • 查询性能略低于InnoDB • 在线执行DDL操作(不阻塞写操作) • 超高压缩率(TokuDB 4M vs InnoDB 16K) 更高性能,更低成本! 分形树索引结构(一) 分形树结构(二) • msg_buffer – 先进先出队列 • BasementNode(OMT) – 弱平衡二叉树 – 增删改查期望复杂度O(logN) 分形树结构(三) 分形树Insert/Update/Delete • 步骤: – a. 磁盘读取root节点页; – b. 若root节点需分裂,则root节点一分为二,提升一个 新的Root节点; – c. 若root节点是叶子节点,则插入到basementNode;否 则,append message到msg_buffer; – d. 返回 分形树Insert/Update/Delete0 码力 | 19 页 | 1.97 MB | 1 年前3 TokuDB索引结构TokuDB索引结构 网易杭州研究院---胡争(博客:openinx.github.io) TokuDB简介 • 基于分形树实现的MySQL存储引擎 • Tokutek公司2007年研发,2013年开源 • 2015年Percona公司收购Tokutek公司 • TokuDB内部的K-V存储引擎为ft-index • TokuMx: ft-index + MongoDB Server层代码 插入性能大大高于InnoDB(分形树vs B+树) • 查询性能略低于InnoDB • 在线执行DDL操作(不阻塞写操作) • 超高压缩率(TokuDB 4M vs InnoDB 16K) 更高性能,更低成本! 分形树索引结构(一) 分形树结构(二) • msg_buffer – 先进先出队列 • BasementNode(OMT) – 弱平衡二叉树 – 增删改查期望复杂度O(logN) 分形树结构(三) 分形树Insert/Update/Delete • 步骤: – a. 磁盘读取root节点页; – b. 若root节点需分裂,则root节点一分为二,提升一个 新的Root节点; – c. 若root节点是叶子节点,则插入到basementNode;否 则,append message到msg_buffer; – d. 返回 分形树Insert/Update/Delete0 码力 | 19 页 | 1.97 MB | 1 年前3
 Greenplum 排序算法9 8 7 7 9 6 3 2 1 分治法 9 快速排序 ● 快速排序算法: 10 堆排序是最常用的排序算法,由J.Williams在1964年发明。 ● 堆是一种近似完全二叉树的结构,最大值堆要求每个子节点的键值总是小于父 节点。最小值堆要求每个子节点的键值总是大于父节点。 堆排序算法 ● 步骤1:建立最大值堆,最大元素在堆顶 ● 步骤2:重复将堆顶元组移除并插入到排序数组,更新堆使其保持堆的性质 输 出 缓 冲 区 输 入 缓 冲 区 27 败者树算法(GP目前使用堆): ● 1. 输入每个顺串的第一个记录作为败者树的叶子节点。建立初始化败者树。 ● 2. 两两相比较,父亲节点存储了两个节点比较的败者(节点较大的值);胜利者 (较小者)可以参与更高层的比赛。这样树的顶端就是当次比较的冠军(最小 者)。 ● 3. 调整败者树,当我们把最小者输入到输出文件以后,需要从相应的顺串取出 一个记录补上去。补回来的时候,我们就需要调整败者树,我们只需要沿着当前 节点的父亲节点一直比较到顶端。比较的规则是与父亲节点比较,胜者可以参 与更高层的比较,一直向上,直到根节点。失败者留在当前节点。 败者树 28 败者树 1 10 30 44 56 . . . 6 8 34 64 66 . . . 7 11 12 13 17 . . . 22 55 67 77 79 . . .0 码力 | 52 页 | 2.05 MB | 1 年前3 Greenplum 排序算法9 8 7 7 9 6 3 2 1 分治法 9 快速排序 ● 快速排序算法: 10 堆排序是最常用的排序算法,由J.Williams在1964年发明。 ● 堆是一种近似完全二叉树的结构,最大值堆要求每个子节点的键值总是小于父 节点。最小值堆要求每个子节点的键值总是大于父节点。 堆排序算法 ● 步骤1:建立最大值堆,最大元素在堆顶 ● 步骤2:重复将堆顶元组移除并插入到排序数组,更新堆使其保持堆的性质 输 出 缓 冲 区 输 入 缓 冲 区 27 败者树算法(GP目前使用堆): ● 1. 输入每个顺串的第一个记录作为败者树的叶子节点。建立初始化败者树。 ● 2. 两两相比较,父亲节点存储了两个节点比较的败者(节点较大的值);胜利者 (较小者)可以参与更高层的比赛。这样树的顶端就是当次比较的冠军(最小 者)。 ● 3. 调整败者树,当我们把最小者输入到输出文件以后,需要从相应的顺串取出 一个记录补上去。补回来的时候,我们就需要调整败者树,我们只需要沿着当前 节点的父亲节点一直比较到顶端。比较的规则是与父亲节点比较,胜者可以参 与更高层的比较,一直向上,直到根节点。失败者留在当前节点。 败者树 28 败者树 1 10 30 44 56 . . . 6 8 34 64 66 . . . 7 11 12 13 17 . . . 22 55 67 77 79 . . .0 码力 | 52 页 | 2.05 MB | 1 年前3
 Apache ShardingSphere 中文文档 5.2.07.4.7 解析引擎 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332 抽象语法树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332 SQL 解析引擎 . . . . . 3.1 数据分片 3.1.1 背景 传统的将数据集中存储至单一节点的解决方案,在性能、可用性和运维成本这三方面已经难于满足海量 数据的场景。 从性能方面来说,由于关系型数据库大多采用 B+ 树类型的索引,在数据量超过阈值的情况下,索引深度 的增加也将使得磁盘访问的 IO 次数增加,进而导致查询性能的下降;同时,高并发访问请求也使得集中 式数据库成为系统的最大瓶颈。 从可用性的方面来讲 分片之后的数据库集 群,是 Apache ShardingSphere 数据分片模块的主要设计目标。 3.1.4 应用场景 海量数据高并发的 OLTP 场景 由于关系型数据库大多采用 B+ 树类型的索引,在数据量超过阈值的情况下,索引深度的增加也将使得 磁盘访问的 IO 次数增加,进而导致查询性能的下降。通过 ShardingSphere 数据分片,按照某个业务维 度,将存放在单一数据0 码力 | 449 页 | 5.85 MB | 1 年前3 Apache ShardingSphere 中文文档 5.2.07.4.7 解析引擎 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332 抽象语法树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332 SQL 解析引擎 . . . . . 3.1 数据分片 3.1.1 背景 传统的将数据集中存储至单一节点的解决方案,在性能、可用性和运维成本这三方面已经难于满足海量 数据的场景。 从性能方面来说,由于关系型数据库大多采用 B+ 树类型的索引,在数据量超过阈值的情况下,索引深度 的增加也将使得磁盘访问的 IO 次数增加,进而导致查询性能的下降;同时,高并发访问请求也使得集中 式数据库成为系统的最大瓶颈。 从可用性的方面来讲 分片之后的数据库集 群,是 Apache ShardingSphere 数据分片模块的主要设计目标。 3.1.4 应用场景 海量数据高并发的 OLTP 场景 由于关系型数据库大多采用 B+ 树类型的索引,在数据量超过阈值的情况下,索引深度的增加也将使得 磁盘访问的 IO 次数增加,进而导致查询性能的下降。通过 ShardingSphere 数据分片,按照某个业务维 度,将存放在单一数据0 码力 | 449 页 | 5.85 MB | 1 年前3
 Apache ShardingSphere 中文文档 5.4.112.4.7 解析引擎 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462 抽象语法树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462 SQL 解析引擎 . . . . . 8.1 数据分片 8.1.1 背景 传统的将数据集中存储至单一节点的解决方案,在性能、可用性和运维成本这三方面已经难于满足海量 数据的场景。 从性能方面来说,由于关系型数据库大多采用 B+ 树类型的索引,在数据量超过阈值的情况下,索引深度 的增加也将使得磁盘访问的 IO 次数增加,进而导致查询性能的下降;同时,高并发访问请求也使得集中 式数据库成为系统的最大瓶颈。 从可用性的方面来讲 分片之后的数据库集 群,是 Apache ShardingSphere 数据分片模块的主要设计目标。 8.1.4 应用场景 海量数据高并发的 OLTP 场景 由于关系型数据库大多采用 B+ 树类型的索引,在数据量超过阈值的情况下,索引深度的增加也将使得 磁盘访问的 IO 次数增加,进而导致查询性能的下降。通过 ShardingSphere 数据分片,按照某个业务维 度,将存放在单一数据0 码力 | 530 页 | 4.49 MB | 1 年前3 Apache ShardingSphere 中文文档 5.4.112.4.7 解析引擎 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462 抽象语法树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462 SQL 解析引擎 . . . . . 8.1 数据分片 8.1.1 背景 传统的将数据集中存储至单一节点的解决方案,在性能、可用性和运维成本这三方面已经难于满足海量 数据的场景。 从性能方面来说,由于关系型数据库大多采用 B+ 树类型的索引,在数据量超过阈值的情况下,索引深度 的增加也将使得磁盘访问的 IO 次数增加,进而导致查询性能的下降;同时,高并发访问请求也使得集中 式数据库成为系统的最大瓶颈。 从可用性的方面来讲 分片之后的数据库集 群,是 Apache ShardingSphere 数据分片模块的主要设计目标。 8.1.4 应用场景 海量数据高并发的 OLTP 场景 由于关系型数据库大多采用 B+ 树类型的索引,在数据量超过阈值的情况下,索引深度的增加也将使得 磁盘访问的 IO 次数增加,进而导致查询性能的下降。通过 ShardingSphere 数据分片,按照某个业务维 度,将存放在单一数据0 码力 | 530 页 | 4.49 MB | 1 年前3
 Apache ShardingSphere 中文文档 5.3.212.4.7 解析引擎 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441 抽象语法树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441 SQL 解析引擎 . . . . . 8.1 数据分片 8.1.1 背景 传统的将数据集中存储至单一节点的解决方案,在性能、可用性和运维成本这三方面已经难于满足海量 数据的场景。 从性能方面来说,由于关系型数据库大多采用 B+ 树类型的索引,在数据量超过阈值的情况下,索引深度 的增加也将使得磁盘访问的 IO 次数增加,进而导致查询性能的下降;同时,高并发访问请求也使得集中 式数据库成为系统的最大瓶颈。 从可用性的方面来讲 分片之后的数据库集 群,是 Apache ShardingSphere 数据分片模块的主要设计目标。 8.1.4 应用场景 海量数据高并发的 OLTP 场景 由于关系型数据库大多采用 B+ 树类型的索引,在数据量超过阈值的情况下,索引深度的增加也将使得 磁盘访问的 IO 次数增加,进而导致查询性能的下降。通过 ShardingSphere 数据分片,按照某个业务维 度,将存放在单一数据0 码力 | 508 页 | 4.44 MB | 1 年前3 Apache ShardingSphere 中文文档 5.3.212.4.7 解析引擎 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441 抽象语法树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441 SQL 解析引擎 . . . . . 8.1 数据分片 8.1.1 背景 传统的将数据集中存储至单一节点的解决方案,在性能、可用性和运维成本这三方面已经难于满足海量 数据的场景。 从性能方面来说,由于关系型数据库大多采用 B+ 树类型的索引,在数据量超过阈值的情况下,索引深度 的增加也将使得磁盘访问的 IO 次数增加,进而导致查询性能的下降;同时,高并发访问请求也使得集中 式数据库成为系统的最大瓶颈。 从可用性的方面来讲 分片之后的数据库集 群,是 Apache ShardingSphere 数据分片模块的主要设计目标。 8.1.4 应用场景 海量数据高并发的 OLTP 场景 由于关系型数据库大多采用 B+ 树类型的索引,在数据量超过阈值的情况下,索引深度的增加也将使得 磁盘访问的 IO 次数增加,进而导致查询性能的下降。通过 ShardingSphere 数据分片,按照某个业务维 度,将存放在单一数据0 码力 | 508 页 | 4.44 MB | 1 年前3
 Apache ShardingSphere 中文文档 5.1.17.2.7 解析引擎 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 抽象语法树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 SQL 解析引擎 . . . . . Apache ShardingSphere 数据库兼容度希望达成的主 要目标。 4.1.4 SQL 解析 SQL 是使用者与数据库交流的标准语言。SQL 解析引擎负责将 SQL 字符串解析为抽象语法树,供 Apache ShardingSphere 理解并实现其增量功能。 目前支持 MySQL, PostgreSQL, SQLServer, Oracle, openGauss 以及符合 SQL92 4.3 数据分片 4.3.1 背景 传统的将数据集中存储至单一节点的解决方案,在性能、可用性和运维成本这三方面已经难于满足海量 数据的场景。 从性能方面来说,由于关系型数据库大多采用 B+ 树类型的索引,在数据量超过阈值的情况下,索引深度 的增加也将使得磁盘访问的 IO 次数增加,进而导致查询性能的下降;同时,高并发访问请求也使得集中 式数据库成为系统的最大瓶颈。 从可用性的方面来讲0 码力 | 409 页 | 4.47 MB | 1 年前3 Apache ShardingSphere 中文文档 5.1.17.2.7 解析引擎 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 抽象语法树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 SQL 解析引擎 . . . . . Apache ShardingSphere 数据库兼容度希望达成的主 要目标。 4.1.4 SQL 解析 SQL 是使用者与数据库交流的标准语言。SQL 解析引擎负责将 SQL 字符串解析为抽象语法树,供 Apache ShardingSphere 理解并实现其增量功能。 目前支持 MySQL, PostgreSQL, SQLServer, Oracle, openGauss 以及符合 SQL92 4.3 数据分片 4.3.1 背景 传统的将数据集中存储至单一节点的解决方案,在性能、可用性和运维成本这三方面已经难于满足海量 数据的场景。 从性能方面来说,由于关系型数据库大多采用 B+ 树类型的索引,在数据量超过阈值的情况下,索引深度 的增加也将使得磁盘访问的 IO 次数增加,进而导致查询性能的下降;同时,高并发访问请求也使得集中 式数据库成为系统的最大瓶颈。 从可用性的方面来讲0 码力 | 409 页 | 4.47 MB | 1 年前3
 Apache ShardingSphere v5.5.0 中文文档12.4.7 解析引擎 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488 抽象语法树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488 SQL 解析引擎 . . . . . 8.1 数据分片 8.1.1 背景 传统的将数据集中存储至单一节点的解决方案,在性能、可用性和运维成本这三方面已经难于满足海量 数据的场景。 从性能方面来说,由于关系型数据库大多采用 B+ 树类型的索引,在数据量超过阈值的情况下,索引深度 的增加也将使得磁盘访问的 IO 次数增加,进而导致查询性能的下降;同时,高并发访问请求也使得集中 式数据库成为系统的最大瓶颈。 从可用性的方面来讲 分片之后的数据库集 群,是 Apache ShardingSphere 数据分片模块的主要设计目标。 8.1.4 应用场景 海量数据高并发的 OLTP 场景 由于关系型数据库大多采用 B+ 树类型的索引,在数据量超过阈值的情况下,索引深度的增加也将使得 磁盘访问的 IO 次数增加,进而导致查询性能的下降。通过 ShardingSphere 数据分片,按照某个业务维 度,将存放在单一数据0 码力 | 557 页 | 4.61 MB | 1 年前3 Apache ShardingSphere v5.5.0 中文文档12.4.7 解析引擎 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488 抽象语法树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488 SQL 解析引擎 . . . . . 8.1 数据分片 8.1.1 背景 传统的将数据集中存储至单一节点的解决方案,在性能、可用性和运维成本这三方面已经难于满足海量 数据的场景。 从性能方面来说,由于关系型数据库大多采用 B+ 树类型的索引,在数据量超过阈值的情况下,索引深度 的增加也将使得磁盘访问的 IO 次数增加,进而导致查询性能的下降;同时,高并发访问请求也使得集中 式数据库成为系统的最大瓶颈。 从可用性的方面来讲 分片之后的数据库集 群,是 Apache ShardingSphere 数据分片模块的主要设计目标。 8.1.4 应用场景 海量数据高并发的 OLTP 场景 由于关系型数据库大多采用 B+ 树类型的索引,在数据量超过阈值的情况下,索引深度的增加也将使得 磁盘访问的 IO 次数增加,进而导致查询性能的下降。通过 ShardingSphere 数据分片,按照某个业务维 度,将存放在单一数据0 码力 | 557 页 | 4.61 MB | 1 年前3
 Apache ShardingSphere 中文文档 5.1.07.2.7 解析引擎 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 抽象语法树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 SQL 解析引擎 . . . . . Apache ShardingSphere 数据库兼容度希望达成的主 要目标。 4.1.4 SQL 解析 SQL 是使用者与数据库交流的标准语言。SQL 解析引擎负责将 SQL 字符串解析为抽象语法树,供 Apache ShardingSphere 理解并实现其增量功能。 目前支持 MySQL, PostgreSQL, SQLServer, Oracle, openGauss 以及符合 SQL92 4.3 数据分片 4.3.1 背景 传统的将数据集中存储至单一节点的解决方案,在性能、可用性和运维成本这三方面已经难于满足海量 数据的场景。 从性能方面来说,由于关系型数据库大多采用 B+ 树类型的索引,在数据量超过阈值的情况下,索引深度 的增加也将使得磁盘访问的 IO 次数增加,进而导致查询性能的下降;同时,高并发访问请求也使得集中 式数据库成为系统的最大瓶颈。 从可用性的方面来讲0 码力 | 406 页 | 4.40 MB | 1 年前3 Apache ShardingSphere 中文文档 5.1.07.2.7 解析引擎 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 抽象语法树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 SQL 解析引擎 . . . . . Apache ShardingSphere 数据库兼容度希望达成的主 要目标。 4.1.4 SQL 解析 SQL 是使用者与数据库交流的标准语言。SQL 解析引擎负责将 SQL 字符串解析为抽象语法树,供 Apache ShardingSphere 理解并实现其增量功能。 目前支持 MySQL, PostgreSQL, SQLServer, Oracle, openGauss 以及符合 SQL92 4.3 数据分片 4.3.1 背景 传统的将数据集中存储至单一节点的解决方案,在性能、可用性和运维成本这三方面已经难于满足海量 数据的场景。 从性能方面来说,由于关系型数据库大多采用 B+ 树类型的索引,在数据量超过阈值的情况下,索引深度 的增加也将使得磁盘访问的 IO 次数增加,进而导致查询性能的下降;同时,高并发访问请求也使得集中 式数据库成为系统的最大瓶颈。 从可用性的方面来讲0 码力 | 406 页 | 4.40 MB | 1 年前3
 2. ClickHouse MergeTree原理解析-朱凯14.6),共拥有合并树、 内存、文件、接口和其他5大类20多种。 合并树 这众多的表引擎中,又属合并树(MergeTree)表引擎及其家族系列(*MergeTree)最 为强大,在生产环境绝大部分场景中都应该使用此系列的表引擎。 只有合并树系列的表引擎才支持主键索引、数据分区、数据副本和数据采样这些特 性,同时也只有此系列的表引擎支持ALTER相关操作。 合并树家族 其中MergeT 段的形式写入磁盘,且数据 片段不可修改。为了避免片段过多,ClickHouse会通过后台线程定期合并这 些数据片段,属于相同分区的数据片段会被合成一个新的片段。这种数据片 段往复合并的特点也正是合并树的名称由来。 MergeTree的创建方式 CREATE TABLE [IF NOT EXISTS] [db_name.]table_name ( name1 [type] [DEFAULT|MATERIALIZED|ALIAS0 码力 | 35 页 | 13.25 MB | 1 年前3 2. ClickHouse MergeTree原理解析-朱凯14.6),共拥有合并树、 内存、文件、接口和其他5大类20多种。 合并树 这众多的表引擎中,又属合并树(MergeTree)表引擎及其家族系列(*MergeTree)最 为强大,在生产环境绝大部分场景中都应该使用此系列的表引擎。 只有合并树系列的表引擎才支持主键索引、数据分区、数据副本和数据采样这些特 性,同时也只有此系列的表引擎支持ALTER相关操作。 合并树家族 其中MergeT 段的形式写入磁盘,且数据 片段不可修改。为了避免片段过多,ClickHouse会通过后台线程定期合并这 些数据片段,属于相同分区的数据片段会被合成一个新的片段。这种数据片 段往复合并的特点也正是合并树的名称由来。 MergeTree的创建方式 CREATE TABLE [IF NOT EXISTS] [db_name.]table_name ( name1 [type] [DEFAULT|MATERIALIZED|ALIAS0 码力 | 35 页 | 13.25 MB | 1 年前3
 Apache ShardingSphere 中文文档 5.1.27.2.7 解析引擎 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 抽象语法树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 SQL 解析引擎 . . . . . Apache ShardingSphere 数据库兼容度希望达成的主 要目标。 4.1.4 SQL 解析 SQL 是使用者与数据库交流的标准语言。SQL 解析引擎负责将 SQL 字符串解析为抽象语法树,供 Apache ShardingSphere 理解并实现其增量功能。 目前支持 MySQL, PostgreSQL, SQLServer, Oracle, openGauss 以及符合 SQL92 4.3 数据分片 4.3.1 背景 传统的将数据集中存储至单一节点的解决方案,在性能、可用性和运维成本这三方面已经难于满足海量 数据的场景。 从性能方面来说,由于关系型数据库大多采用 B+ 树类型的索引,在数据量超过阈值的情况下,索引深度 的增加也将使得磁盘访问的 IO 次数增加,进而导致查询性能的下降;同时,高并发访问请求也使得集中 式数据库成为系统的最大瓶颈。 从可用性的方面来讲0 码力 | 446 页 | 4.67 MB | 1 年前3 Apache ShardingSphere 中文文档 5.1.27.2.7 解析引擎 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 抽象语法树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 SQL 解析引擎 . . . . . Apache ShardingSphere 数据库兼容度希望达成的主 要目标。 4.1.4 SQL 解析 SQL 是使用者与数据库交流的标准语言。SQL 解析引擎负责将 SQL 字符串解析为抽象语法树,供 Apache ShardingSphere 理解并实现其增量功能。 目前支持 MySQL, PostgreSQL, SQLServer, Oracle, openGauss 以及符合 SQL92 4.3 数据分片 4.3.1 背景 传统的将数据集中存储至单一节点的解决方案,在性能、可用性和运维成本这三方面已经难于满足海量 数据的场景。 从性能方面来说,由于关系型数据库大多采用 B+ 树类型的索引,在数据量超过阈值的情况下,索引深度 的增加也将使得磁盘访问的 IO 次数增加,进而导致查询性能的下降;同时,高并发访问请求也使得集中 式数据库成为系统的最大瓶颈。 从可用性的方面来讲0 码力 | 446 页 | 4.67 MB | 1 年前3
共 40 条
- 1
- 2
- 3
- 4













