Greenplum 排序算法Greenplum内核揭秘之排序算法 5 ● 内排序算法 ● 外排序算法 ● Greenplum TupleSort ● 排序在Greenplum中的应用 Outline 6 ● 冒泡排序 ● 插入排序 ● 快速排序 ● 堆排序 ● 基数排序 内排序算法 7 快速排序是最常用的排序算法,由Tony Hoare在1959年发明。 快速排序算法的三个步骤: ● 挑选基准值 列分 别进行排序 快速排序 8 ● 快速排序算法每次选取一个基准元素,将比基准元素小的排到基准元素左边, 比基准元素大的排到基准元素的右边,从而将待排序数组分成两个子集。 快速排序 6 8 3 2 7 1 7 9 8 7 7 9 6 3 2 1 分治法 9 快速排序 ● 快速排序算法: 10 堆排序是最常用的排序算法,由J.Williams在1964年发明。 ● 堆 堆是一种近似完全二叉树的结构,最大值堆要求每个子节点的键值总是小于父 节点。最小值堆要求每个子节点的键值总是大于父节点。 堆排序算法 ● 步骤1:建立最大值堆,最大元素在堆顶 ● 步骤2:重复将堆顶元组移除并插入到排序数组,更新堆使其保持堆的性质 ● 步骤3:当堆的元素个数为零时,数组排序完毕 堆排序 11 ● 建堆 堆排序 9 5 8 1 3 6 2 1 2 5 9 80 码力 | 52 页 | 2.05 MB | 1 年前3
TiDB 开源分布式关系型数据库Database}被国际三大顶级数据库会议VLDB 2020 收录, 成为业界第 一篇 Real-time HTAP 分布式数据库工业实现的顶级论文 *。 ”发明专利:一种键值存储系统沙《一种基于共识算法的 HTAP 数据库》 *。 ”计算机软件著作权登记证书: 分布式数据库 TiDB 企业版软件.Tiflash 列式存储引擎软件 一 PingCAP *。 提升系统性能: 选择微服务架构与分布式数据库,通过分离处理功能、分散处理压力、扩展处理能 力等措施,保障海唱数据、高并发的业务场景对接,大幅提升交易处理效率。 。 满足安全需求: 基于一致性算法保证交易数据的强一致性,依托数据日志的备份恢复能力,提升数 据可追溯性,满足监管要求,提高自动化运维能力。 *。 具备在线横向扩展能力: 在网联支付与线上贷款两个业务服务集群中,5 小时内实现 5 系统并发峰值达数十万, 因每轮秒杀、扬奖等活动时间短, 流量集中, 以及业务场景涉及到对账核销, 数据 持久层的选型在系统设计中显的尤为重要。 解决方案 汽车之家基于TiDB 构建两地三中心方案, 通过 Raft 算法保证数据库集群数据的一致性和高可用性, 城数据中心网络延迟相对较小, 业务流量同时派发到同城两个数据中心, 通过控制 Region Leader 和 PD Leader 分布实现同城数据中心共同负载业务流量。0 码力 | 58 页 | 9.51 MB | 1 年前3
TiDB v6.1 中文手册修改 类型 描述 tidb_ �→ enable �→ _ �→ outer �→ _ �→ join �→ _ �→ reorder �→ 新增 控制 TiDB 的Join Reorder 算法 支 持 Outer Join,默 认开 启。对 于从旧 版本升 级上来 的集 群,该 变量的 默认值 也会是 TRUE。 tidb_ �→ enable �→ _ �→ prepared �→ 支持 Region Buckets #4668 – 默认关闭编译 swagger server #4932 • TiFlash – 优化聚合算子的内存统计,从而能在 Merge 阶段选择更高效的算法 #4451 • Tools – Backup & Restore (BR) * 支持备份恢复空库 #33866 – TiDB Lightning * 优化 Scatter Region 为批量模式,提升 Y Y Y Y Y 序列 Y Y Y Y Y Y Y Y AUTO_INCREMENT 列 Y Y Y Y Y Y Y Y AUTO_RANDOM 列 Y Y Y Y Y Y Y Y DDL 算法断言 Y Y Y Y Y Y Y Y 在单条语句中添加多列 实验特性 实验特性 实验特性 实验特性 实验特性 实验特性 实验特性 实验特性 更改列类型 Y Y Y Y Y Y N N 临时表 Y0 码力 | 3572 页 | 84.36 MB | 1 年前3
TiDB v7.1 中文手册下推到 TableScan 算 子。 更多信息,请参考用户文档。 34 • TiFlash 支持根据网络交换数据量自动选择 MPP 模式的 Join 算法 #7084 @solotzg TiFlash MPP 模式有多种 Join 算法。在 v7.1.0 之前的版本中,TiDB 根据变量tidb_broadcast_join_threshold �→ _count 和tidb_broadc MPP 模式是否使用 Broad- cast Hash Join 算法。 在 v7.1.0 中,TiDB 引入变量tidb_prefer_broadcast_join_by_exchange_data_size,控制是否基于最小 网络数据交换策略选择 MPP Join 算法。该变量默认关闭,表示默认保持 v7.1.0 之前的算法选择策略。 如需开启,请设置该变量为 ON。开启后,你无需再手动调整 eshold_count 和tidb_broadcast_join_threshold_size 的阈值(此时这两个变量将不再生效),TiDB 会自动估算不同 Join 算法所需进行网络交换的数据量,然后选择综合开销较小的算法,从而减少网络流量,提升 MPP 查 询性能。 更多信息,请参考用户文档。 • 支持自适应副本读取缓解读热点 #14151 @sticnarf @you06 在读热点场景中,热点0 码力 | 4369 页 | 98.92 MB | 1 年前3
TiDB v6.5 中文手册_outer �→ _join_ �→ reorder �→ 修改 经进一 步的测 试后, 该变量 默认值 从 OFF 修改为 ON,表 示默认 启用 Outer Join 的Join Reorder 算法。 39 变量名 修改类型 描述 tidb_cost �→ _model �→ _ �→ version �→ 修改 经进一 步的测 试后, 该变量 默认值 从 1 修 改为 2, 表示默 认使用 AUTO_INCREMENT 列 Y Y Y Y Y Y Y Y AUTO_RANDOM 列 Y Y Y Y Y Y Y Y TTL (Time to Live) E N N N N N N N DDL 算法断言 Y Y Y Y Y Y Y Y 在单条语句中添加多列 Y E E E E E E E 更改列类型 Y Y Y Y Y Y N N 临时表 Y Y Y Y N N N N 并行 DDL Y origin %d 的错误。更多细 节,请参考ALTER TABLE。 • TiDB 中,ALGORITHM={INSTANT,INPLACE,COPY} 语法只作为一种指定,并不更改 ALTER 算法,详情参 阅ALTER TABLE。 • 不支持添加或删除 CLUSTERED 类型的主键。要了解关于 CLUSTERED 主键的详细信息,请参考聚簇索引。 • 不支持指定不同类型的索引 (HA0 码力 | 4049 页 | 94.00 MB | 1 年前3
TiDB v8.0 中文手册• BR 快照恢复速度提升 GA #50701 @3pointer @Leavrth 从 TiDB v8.0.0 版本起,BR 快照恢复提速功能正式发布并默认启用。通过采用粗粒度打散 Region 算法、批 量创建库表、降低 SST 文件下载和 Ingest 操作之间的相互影响、加速表统计信息恢复等改进措施,快照 恢复的速度有大幅提升。在实际案例中,单个 TiKV 节点的数据恢复速度稳定在 1.2 Region 算法会占用大量的外部 存储带宽,请避免因为外部带宽不足导致的对其他业务的影响。 更多信息,请参考用户文档。 • 新增支持下推以下函数到 TiFlash #50975 #50485 @yibin87 @windtalker – CAST(DECIMAL AS DOUBLE) – POWER() 更多信息,请参考用户文档。 • TiDB 的并发 HashAgg 算法支持数据落盘(实验特性)#35637 TiDB 版本中,HashAgg 算子的并发算法不支持数据落盘。当 SQL 语句的执行计划包含并发的 HashAgg 算子时,该 SQL 语句的所有数据都只能在内存中进行处理。这导致内存需要处理大量数据,当 超过内存限制时,TiDB 只能选择非并发 HashAgg 算法,无法通过并发提升性能。 在 v8.0.0 中,TiDB 的并发 HashAgg 算法支持数据落盘。在任意并发条件下,HashAgg0 码力 | 4805 页 | 101.28 MB | 1 年前3
TiDB v8.1 中文手册1/system-variables#tidb_schema_cache_ �→ size-从-v800-版本开始引入">schema 缓存系统,为表元数据提供了基于 LRU (Least �→ Recently Used) 算法的缓存策略,优先将最近访问频率较高的表元数据存储在缓存中, �→ 从而减少表数量较多场景下的内存占用。- 支持在
auto analyze中配置0 码力 | 4807 页 | 101.31 MB | 1 年前3- 支持在
TiDB v7.6 中文手册照备份数据">BR �→ 快照恢复速度最高提升 10 倍(实验特性)BR v7.6.0 实验性地引入了粗粒度打散 Region 算法,用于提升集群的快照恢复速度。在 TiKV �→ 节点较多的集群中,该算法可显著提高集群资源利用率,更均匀地分配负载, �→ 同时更好地利用每个节点的网络带宽。在一些实际案例中,该特性可将恢复速度最高提升约 10 倍 �→ 。 的版本中,Region 打散算法是性能恢复的主要瓶颈。在 v7.6.0 中,BR 优化了 Region 打散算法,可以迅速 将恢复任务拆分为大量小任务,并批量分散到所有 TiKV 节点上。新的并行恢复算法充分利用每个 TiKV 节点的所有资源,实现了并行快速恢复。在实际案例中,大规模 Region 场景下,集群快照恢复速度最 高提升约 10 倍。 目前,新的粗粒度 Region 打散算法为实验特性,你可以配置 打散算法为实验特性,你可以配置 br 新增的命令行参数 --granularity=" �→ coarse-grained" 启用新算法。例如: br restore full \ --pd "${PDIP}:2379" \ --storage "s3://${Bucket}/${Folder}" \ --s3.region "${region}" \ --granularity "coarse-grained"0 码力 | 4666 页 | 101.24 MB | 1 年前3
TiDB v7.5 中文手册Coprocessor request 的 超时时间。 39 配置文件 配置项 修改类型 描述 TiKV raftstore �→ . �→ inspect �→ - �→ interval �→ 修改 经过算法 调优后, 默认值由 500ms 调整 为 100ms, 以提升慢 节点检测 的灵敏度。 TiKV raftstore �→ . �→ region �→ - �→ compact �→ -min- Y Y4 Y Y Y Y Y Y Y AUTO_RANDOM 列 Y Y Y Y Y Y Y Y Y Y TTL (Time to Live) Y Y E N N N N N N N DDL 算法断言 Y Y Y Y Y Y Y Y Y Y 在单条语句中添加多列 Y Y Y E E E E E E E 更改列类型 Y Y Y Y Y Y Y Y N N 临时表 Y Y Y Y Y Y N origin %d 的错误。更多细 节,请参考ALTER TABLE。 • TiDB 中,ALGORITHM={INSTANT,INPLACE,COPY} 语法只作为一种指定,并不更改 ALTER 算法,详情参 阅ALTER TABLE。 • 不支持添加或删除 CLUSTERED 类型的主键。要了解关于 CLUSTERED 主键的详细信息,请参考聚簇索引。 • 不支持指定不同类型的索引 (HA0 码力 | 4590 页 | 100.91 MB | 1 年前3
TiDB v8.4 中文手册参数控制是否开启该功能。 更多信息,请参考用户文档。 • TiCDC 引入 Checksum V2 算法校验 Update 或 Delete 事件中 Old Value 数据 #10969 @3AceShowHand 从 v8.4.0 开始,TiDB 和 TiCDC 引入 Checksum V2 算法,解决了 Checksum V1 在执行 ADD COLUMN 或 DROP COLUMN 后无法正确校验 Value 数据的问题。对于 v8.4.0 及之后新创建的集群,或从之 前版本升级到 v8.4.0 的集群,启用单行数据 Checksum 正确性校验功能后,TiDB 默认使用 Checksum V2 算法 进行 Checksum 计算和校验。TiCDC 支持同时处理 V1 和 V2 两种 Checksum。该变更仅影响 TiDB 和 TiCDC 内部 实现,不影响下游 Kafka consumer 的 crypter �→ . �→ method 新增 设置日志 备份数据 的加密算 法,支持 aes128- �→ ctr、 aes192- �→ ctr 和 aes256- �→ ctr 三 种算法, 缺省值为 plaintext, 表示不加 密。 BR --master- �→ key 新增 设置日志 备份数据 的主密钥, 可以是基 于本地磁 盘的主密 钥或基于 云 KMS (Key0 码力 | 5072 页 | 104.05 MB | 10 月前3
共 73 条
- 1
- 2
- 3
- 4
- 5
- 6
- 8













