做者:申砾git
今年 1 月份,咱们发布了 TiDB 3.0.0 Beta 版本,DevCon 上也对这个版本作了介绍,通过两个月的努力,今天推出了下一个 Beta 版本 3.0.0 Beta.1。让咱们看一下这个版本相比于以前有什么改进。github
查询计划正确性和稳定性对于关系型数据库来讲相当重要,3.0.0 Beta.1 对这部分进行了优化,引入一个叫 Skyline Pruning
的框架,经过一些启发式规则来更快更准确地找到最好的查询计划。详细信息能够参考 这篇设计文档。数据库
日志是排查程序问题的重要工具,统一且结构化的日志格式不但有利于用户理解日志内容,也有助于经过工具对日志进行定量分析。3.0.0 Beta.1 版本中对 tidb/pd/tikv 这三个组件的日志格式进行了统一,详细格式参见 这篇文档。性能优化
慢查询日志是经常使用于排查性能问题, 在 3.0.0 Beta.1 以前慢查询日志跟其余日志混合存储在同个日志文件,而且格式为自定义的格式,不支持使用 SQL 语句或工具对其进行分析,严重影响排查问题的效率。从3.0.0 Beta.1 版本开始 TiDB 将查询日志文件输出到单独的日志文件中(默认日志文件名为 tidb-slow.log
),用户能够系统变量或配置文件进行修改,同时兼容 MySQL 慢查询日志格式,支持使用 MySQL 生态分析工具(如 pt-query-digest
)对慢查询日志进行分析。负载均衡
除了慢查询日志以外,还增长一个虚拟表 INFORMATION_SCHEMA.SLOW_QUERY
,能够对慢查询日志进行展现和过滤。框架
关于如何处理慢查询,咱们后续还会专门写一篇文档进行介绍。若是你有一些好用的慢查询处理工具,也欢迎和咱们进行交流。分布式
MySQL 所支持的 Window Function TiDB 3.0.0 Beta.1 版本已经全都支持,这为 TiDB 向 MySQL 8 兼容迈出了一大步。想体验功能的能够下载版本尝鲜,可是不建议在生产中使用,这项功能还须要大量的测试,欢迎你们测试并反馈问题。工具
热点调度是保持集群负载均衡的重要手段,可是一些场景下默认的热点调度显得不那么智能,甚至会对集群负载形成影响,因此 3.0.0 Beta.1 中增长了对负载均衡策略的人工干预方法,能够临时调整调度策略。性能
目前已经完成 TableScan 算子,单 TableScan 即扫表性能提高 5% ~ 30%,接下来会对 IndexScan、Filter、Aggregation 等算子以及表达式计算框架进行优化。测试
Lightning 是将大量数据导入 TiDB 的最佳方式,在特定表结构,单表数量,集群已有数量等条件下 1TB 数据导入性能提高 1 倍,时间从 6 小时下降到 3 小时之内,性能优化的脚步不会停,咱们指望进一步提高性能,下降时间,指望能优化到 2 小时之内。
/debug/zip
HTTP 接口, 能够方便地一键获取当前 TiDB 实例的信息,便于诊断问题。更多的改进能够参见 Release Notes,除了这些已经完成的特性以外,还有一些正在作的事情,好比 RBAC、Plan Management 都在密集开发中,但愿在下一个 Beta 版本或者 RC 版本中能与你们见面。
在这个版本的开发过程当中,社区依然给咱们颇有力的支持,好比潘迪同窗一直在负责 View 的完善和测试,美团的同窗在推动 Plan Management
,一些社区同窗参与了 TiDB 性能改进 活动。在这里对各位贡献者表示由衷的感谢。接下来咱们会开展更多的专项开发活动以及一系列面向社区的培训课程,但愿能对你们了解如何作分布式数据库有帮助。
One More Thing
TiDB DevCon 2019 上对外展现的全新分析类产品 TiFlash 已经完成 Alpha 版本的开发,目前已经在进行内部测试,昨天试用了一下以后,我想说“真香”。