TiDB 5.4:迈向混合负载处理的又一里程碑
2023-12-20 13:20:18
TiDB 5.4 作为 2022 年开山之作,包含了许多有用有益的新功能和持续性的性能/稳定性提升。本文着重介绍重要新增功能和特性所带给用户的新体验和价值。
1. 新型索引:Brv2 Index
Brv2 Index 是一种新的索引结构,它可以显著提高混合负载(既有在线交易处理,也有分析处理)的性能。在以往 TiDB 中,普通二级索引是在键上创建B+Tree,辅助键上创建hash索引,Brv2 Index的创新之处在于,它在键上创建hash索引,而在辅助键上创建B+Tree。通过优化后的存储结构和算法,Brv2 Index可以减少索引扫描的IO次数,降低CPU消耗,带来更快的查询速度。
2. 在线DDL:ALTER TABLE ... RENAME COLUMN
ALTER TABLE ... RENAME COLUMN 允许用户在线重命名表中的列。在以往,如果用户想要重命名表中的列,需要执行以下步骤:
- 创建一张新表,并使用新的列名。
- 将数据从旧表复制到新表。
- 删除旧表。
这可能会导致大量的数据复制和锁等待,尤其是在表很大的时候。而TiDB 5.4 中的 ALTER TABLE ... RENAME COLUMN 特性可以避免这些问题。它允许用户在线重命名表中的列,而不会产生任何锁等待或数据复制。
3. 新型SQL函数:percentile_disc
percentile_disc 是一个新的SQL函数,它可以计算数据的百分位数。percentile_disc 函数与现有的 percentile 函数非常相似,但它有一个重要的区别:percentile_disc 函数是确定性的,而 percentile 函数是非确定性的。
在 TiDB 中,计算数据的百分位数通常使用 percentile 函数。但是,percentile 函数是非确定性的,这意味着它可能会在每次执行时产生不同的结果。这是因为 percentile 函数使用随机抽样来估计数据的百分位数。
4. 存储过程的支持
TiDB 5.4 新增了对存储过程的支持。存储过程是一种预编译的SQL语句,它可以被多次调用。存储过程可以使代码更易于管理和维护,并可以提高查询性能。TiDB 5.4 中的存储过程支持包括:
- 创建存储过程
- 调用存储过程
- 修改存储过程
- 删除存储过程
5. 性能提升
TiDB 5.4 包含了许多性能提升,包括:
- 优化了 TiFlash 的数据压缩算法,减少了数据存储空间。
- 优化了 TiKV 的内存管理,减少了内存消耗。
- 优化了 TiDB 的查询优化器,提高了查询性能。
总结
TiDB 5.4 是 TiDB 在 2022 年的第一个里程碑版本。它包含了许多有用有益的新功能和持续性的性能/稳定性提升。这些新功能和特性可以帮助用户构建更具弹性、可扩展性和性能的数据库应用程序。