同样机器下,mysql的表迁移至OB,查询效率慢于mysql,ob没走索引

单独的一个 查询sql ,解析其执行计划居然是个远程的,这个现象也不对。可以退出会话重新登录一下,然后再explain 一下。

早期OB 版本分析解析执行计划就容易有这个问题,被你会话当前的环境影响了。

此外,如果还有疑点,那就直接跑sql,看 show trace 里执行路径是否有远程。以及单独开窗口去抓取sql的实际执行计划,看实际执行计划是不是远程执行计划。如果是就很不合理了。

你直连到这个节点查询一下 再发一下执行计划 你的架构是什么样的 发一下
你查询一下该表的leader信息
SELECT * FROM oceanbase.DBA_OB_TABLE_LOCATIONS
WHERE DATABASE_NAME=‘test’ and TABLE_NAME=‘t1’ and ROLE=‘LEADER’ and TABLE_TYPE=‘USER TABLE’;


这个租户分布3个uint

昨天有查询这个

mysql> SELECT * FROM oceanbase.DBA_OB_TABLE_LOCATIONS
WHERE DATABASE_NAME='stock' and TABLE_NAME='stock_cbr' and ROLE='LEADER' and TABLE_TYPE='USER TABLE';
+---------------+------------+----------+------------+----------------+-------------------+------------+---------------+-----------+-------+-------+---------------+----------+--------+--------------+-----------------+-----------+-----------------+---------------+----------+
| DATABASE_NAME | TABLE_NAME | TABLE_ID | TABLE_TYPE | PARTITION_NAME | SUBPARTITION_NAME | INDEX_NAME | DATA_TABLE_ID | TABLET_ID | LS_ID | ZONE  | SVR_IP        | SVR_PORT | ROLE   | REPLICA_TYPE | DUPLICATE_SCOPE | OBJECT_ID | TABLEGROUP_NAME | TABLEGROUP_ID | SHARDING |
+---------------+------------+----------+------------+----------------+-------------------+------------+---------------+-----------+-------+-------+---------------+----------+--------+--------------+-----------------+-----------+-----------------+---------------+----------+
| stock         | stock_cbr  |   500065 | USER TABLE | NULL           | NULL              | NULL       | NULL          |    200029 |  1003 | zone1 | 192.168.10.45 |     2882 | LEADER | FULL         | NONE            |    500065 | NULL            | NULL          | NULL     |
+---------------+------------+----------+------------+----------------+-------------------+------------+---------------+-----------+-------+-------+---------------+----------+--------+--------------+-----------------+-----------+-----------------+---------------+----------+
1 row in set (0.03 sec)

你是通过odp执行的语句么?还是在某一个节点上直连查询的?

我就navicat连接对应的节点,查的

那你的navicat是通过直连的 还是odp呢 默认情况下 直连是2881端口 odp是2883端口 你要是改了端口就是改了以后的端口

直连的2881哦

好的 那你通过obclient直连这个节点192.168.10.45 执行这个语句 看看 发一下explain extended sql 执行计划 再看看

这个就是之前的发的那个了。我走obd的2883吧,感谢你的回答

好的 直连查询走本地的执行计划 耗时和mysql几乎一样的 如果是远程的执行计划 耗时会慢点

是的,直连性能很好