相同的数据库,TiDB集群服务器查询没有单机mysql查询快是什么原因?

麻烦查看下 new_collations_enabled_on_first_bootstrap 参数值是不是设置为true了?

对的,我们启用了这个参数

大佬知道是什么原因导致的吗

new_collations_enabled_on_first_bootstrap

  • 用于开启新的 collation 支持
  • 默认值:false
  • 注意:该配置项只有在初次初始化集群时生效,初始化集群后,无法通过更改该配置项打开或关闭新的 collation 框架;4.0 版本之前的 TiDB 集群升级到 4.0 时,由于集群已经初始化过,该参数无论如何配置,都作为 false 处理。

跟这个参数应该没关系吧?

2 个赞

提供下 TiDB 侧 explain analyze sql 的结果看看?TiDB 中非 coprocessor 部分还是会在单个 TiDB 节点上运算的,所以如果从 TiKV 取出的数据比较多,TiDB 侧还是有运算瓶颈的

感觉mysql中关联表数据比tidb少?

sql语句完全是一样的

TIDB 这边先做个analyze estrow 和 actrow 差距太大

我现在需要怎么做?

https://docs.pingcap.com/zh/tidb/v4.0/sql-statement-analyze-table#analyze

楼上说给个TiDB的执行计划

TiDB执行计划tidb执行计划.txt (30.8 KB)

tidb执行计划上传了,帮忙看看

执行计划上传了,帮忙看看

按照这个 plan 确实应该不会太快,每次 join 都会读出来大量的数据。

我试着导入 tbl_order.json tbl_order_detail.json 导入不进去。然后看了下里面的文件的 histogram 发现有很多不可见的特殊字符,这些字符是业务本身存进去的么。

比如

$ echo “AAl29GOli7+V7g==” | base64 -D
v�c�����%

是tbl_order表吗
有个ip我们使用的varbinary类型的数据项,不知道是不是这个显示的乱码

比如 ad_source 这一列。ip那一列应该没有影响

ad_source数据项,正常是不会有乱码字符的,如果有零星的几条信息是由于字符集的原因引发的

因为stats导入不进去,也没法本地调试。不过综合上面发的信息,还是因为join层数很多,而且每次join会有大量数据在tidb侧处理的原因导致性能不是很快。

是否可以按照下面的方法导出一下文件:
https://docs.pingcap.com/zh/tidb/v5.3/sql-plan-replayer