TAOS数据库

体验 TDengine 3.0 高性能的第一步,请学会控制建表策略

正如我们之前所言,在3.0当中,我们在产品底层做了很大的变化调整,除了架构更加科学高效以外,用户体验也是我们重点优化的方向。以之前一篇文章为例:对于Update功能,用户不再需要任何配置,默认即是比2.0更完善的机制。(https://mp.weixin.qq.com/s/7E8kl9W8IXROx_K0EGQPkg)切换到3.0版本之后(《如何把数据从TDengine2.x迁移到3.x?》),我

TDengine 3.0建表由客户端对表名做哈希,再按各vgroup的哈希范围路由建表,因此只需在建库时用vgroups参数控制vgroup数量。多数场景vgroups不超过CPU核数2倍即可,同时要保证所有dnode的supportVnodes之和不小于vnode总数,否则报Out of dnodes,需补充dnode。

  • 3.0建表按表名哈希路由,建库时指定vgroups即可
  • vgroups默认配置可能仅2个,限制多线程并行
  • vgroups建议不超过机器CPU核数的2倍
  • 各dnode的supportVnodes之和需大于vnode总数
  • supportVnodes默认值为CPU核数的2倍

正如我们之前所言,在 3.0 当中,我们在产品底层做了很大的变化调整,除了架构更加科学高效以外,用户体验也是我们重点优化的方向。以之前一篇文章为例:对于 Update 功能,用户不再需要任何配置 ,默认即是比 2.0 更完善的机制。(https://mp.weixin.qq.com/s/7E8kl9W8IXROx_K0EGQPkg)

切换到 3.0 版本之后(《如何把数据从 TDengine 2.x 迁移到 3.x ?》),我们面对的第一个问题就是建库建表,在 3.0 版本中,这部分逻辑发生了重大变化,这对于 3.0 初体验的用户来说是十分重要的,是数据库后续查询/写入性能保障的根基。有些表数量比较多的用户刚换到 3.0 的时候,会感觉性能和 2.x 差一些,其实就是因为建库时使用了默认配置,导致 vgroup 数量只有 2 个,因此无法利用到 TDengine 多线程并行的特性来处理数据。

相比起 2.0 ,3.0 的建表策略控制是很简单的,它可以让用户无难度无成本地找到自己适合的配置。

简而言之:只需要在建库的时候指定合适的参数即可。

在 2.0 版本中,很多用户都阅读过这篇文章:https://mp.weixin.qq.com/s/H2GCESF40wnWYf4IKP_-9g,以期用自定义的建表逻辑来获得更好的性

原创不易,完成人机校验,阅读全文

常见问题

TDengine 3.0建库vgroups设多少合适?

每个vnode是独立工作单元,一般不超过机器CPU核数的2倍即可;特殊场景需结合多方因素精细化计算与调试。

TDengine报Out of dnodes怎么解决?

说明dnode的supportVnodes之和小于库的vnode总数,可调大taos.cfg中的supportVnodes或补充新的dnode。

相关推荐