TDSQL Boundless 兼容什么数据库协议?
TDSQL Boundless 兼容 MySQL 8.0协议,用户可以将其视为一个 MySQL 8.0实例来使用,但有个别受限的操作,具体请参考 MySQL 兼容性。 TDSQL Boundless 最大支持容量是多少?
TDSQL Boundless 的最大支持容量理论上是无限的。随着业务需求的增长,您可以通过增加更多的节点来扩展数据库的容量,以适应不断增长的数据存储和处理需求。目前,公有云上已经支持部署包含数十个节点的 TDSQL Boundless 实例。
同时,TDSQL Boundless 还提供可视化界面,用于便捷地进行水平扩容和缩容操作。同时 TDSQL Boundless 内置了自动搬迁和容量均衡功能,能够在节点间自动调整数据分布,确保系统的性能和存储效率始终处于最佳状态,且无需人工干预。
TDSQL Boundless 是否需要分片键(ShardKey)?
TDSQL Boundless 无需定义分片键,其建表语法与原生 MySQL 保持一致。TDSQL Boundless 分片机制基于 MySQL 原生的分区表,大多数情况下一级 Hash 分区表足以覆盖需求,Hash 分区打散在所有的数据节点上,均衡写入压力。
在 TDSQL Boundless 中,是否需要使用分区表?
在单机版中,分区表主要用于通过分区裁剪提升 SQL 性能和通过 drop partition 的方式定期清理数据。而在 TDSQL Boundless 分布式场景下,使用分区表的好处还包括利用多个节点的写入能力,这对于大数据量的处理尤为重要。
当面临大规模数据迁移时,建议预先将大表改造成基于 Hash 的分区表。这样做可以利用 TDSQL Boundless 多节点的能力来加速数据导入过程。
如果没有预先分区,而是创建了一个单表,那么在数据导入初期,所有的写入操作都会集中在一个数据节点上,这可能导致 I/O 瓶颈。TDSQL Boundless 提供了自动分裂和数据迁移的功能,但如果表一开始没有分区,这个过程可能会比较缓慢,并且在分裂和迁移期间,副本均衡也会带来额外的 I/O 开销。
通过创建分区表,可以最大限度地发挥 TDSQL Boundless 分布式数据库的能力。这种改造的成本很低,只需要修改建表语句,而不需要对业务代码进行任何其他适配。例如,如果您的 TDSQL Boundless 实例包含30个节点,创建一个包含30个分区的一级 Hash 分区表,TDSQL Boundless 会在每个节点上创建一个主副本,从而实现副本均衡。同时,业务的增量数据会均匀分布在所有节点上,每个节点的压力也会相对均衡。
总之,为了充分利用 TDSQL Boundless 的分布式特性并避免潜在的性能瓶颈,创建分区表是一种推荐的最佳实践。