可能有个别新特性没点评,因为我只点评我看得懂的。作者是 TiDB 爱好者,由于生产上并没有上线 TiDB,所以自称为 PPT 玩家。
全文是对这篇文章进行点评 《TiDB 6.5 LTS 发版 》
1.集群闪回
之前 TiDB 已经支持表级的闪回,这次支持了集群的闪回,算是闪回功能的完工了。而 MySQL 原生不支持闪回,不知道为啥不开发这个功能,很有用。
2.大事务自动拆分
就是删除数据不需要自己程序写 for 循环 + delete xxx where xxx limit xxx 这种方式了。新增了一个 BATCH ON 的语法,直接数据库层就搞掂了,算是一个便利功能吧,但引入了 MySQL 不存在的新语法 batch on。但这个功能应该是不建议直接用于生产环境的,他是非事务的方式,所以建议的用法是变更窗口、测试环境,或者程序上有补救处理手段。
3.高性能全局单调递增auto_increment
MySQL 本身就是单调递增的,由于 TiDB 是分布式,那就不好弄了,现在终于可以做到全局的单调递增了。
4.TTL
取代分区表的一个定期删数功能。听说 TTL 是 redis 里很成熟的功能,我没有研究过。
5.DDL加强
之前加索引 DDL 慢的一批,尤其是存放在 TiDB 的数据量通常远大于 MySQL,那么加索引慢那就凉凉了。他们加索引是在一个队列里的,不同表之间不能同时加索引,我第一张表的索引要加一天,那么第二张表我现在想加索引就加不了,得等,这在 MySQL 乃至所有关系数据库都不存在的痛点,表的 DDL 都是独立的,互相不阻塞的。现在 TiDB 的 DDL 支持并行,并且引入了新的设计,性能提高的10倍,同时支持多表同时 DDL,在不同队列,加索引不用排队了。
6.json支持增强
抄作业,兼容 MySQL5.7。 我记得我们当年想省存储空间,在 MySQL 的 tokudb 存储引擎和 TiDB 两者选型上,选了 TiDB,其中一个理由就是支持 json。另外一个理由是当时 xtrabackup 不支持 tokudb(后面听说支持了,出来了 https://github.com/XeLabs/tokudb-xtrabackup,xtrabackup 的分支)。当然了,tokudb 现在已经凉凉了,更佳的选择是 rockdb (percona 新宠儿)
7.全局内存控制
TiDB 之前一个大痛点就是经常 OOM,全局内存空间可以防止 OOM,设置后如果内存不足会报错,说你这个 SQL用的内存太多了,不给执行。
8.多样化容灾能力
6.5版本新出来的 PITR, 是 Point-in-Time Recovery 的缩写,确实标题起的对,是容灾多样化了,不是增强了。因为这 TM 不算容灾吧,广义上勉强算是吧,是容灾之中较低级的——灾备。 RTO 和 RPO 均很低。确实是多样化了容灾能力,适合省钱的低配版容灾方案; TICDC 一直很好很强大,比较贵的容灾方案。 DM 好评如潮的工具,容灾、增强迁移、异构同步、MySQL to MySQL 有时都可以用,他除了 MySQL 的复制过滤功能,还能过滤DML,例如你只想回放 inert、update,不回放 delete 是可以做到的。。前几天群里就有小伙伴问,我就安利了 DM。