TiDB-v6.1.0使用SQLhint(READ_FROM_STORAGE)失效

【TiDB 使用环境】
CentOS 7环境下,参考快速上手HTAP使用tiup playground部署本地测试集群。
受限于机器性能,自行导入了Scale = 0.01的TPC-H基准到新建的数据库tpch中。
具体大小如下图所示。


【TiDB 版本】6.1.0
【遇到的问题】
问题(1) 新建TiFlash副本,使用READ_FROM_STORAGE的sql hint尝试从TiKV中读取表格,hint并没有生效而是选择了TiFlash进行读取。
示例SQL如下:
问题(2) 把MPP两个系统变量均设为off后('set @@session.tidb_enforce_mpp=0;
', 'set @@session.tidb_allow_mpp=0;
'),使用同样的sql hint尝试从TiKV读取,问题依旧出现。

【复现路径】
使用TiUP:

tiup playground --tag TPCH_0.01

导入TPC-H数据。
新建Tiflash副本:

ALTER TABLE customer SET TIFLASH REPLICA 1;
ALTER TABLE PART SET TIFLASH REPLICA 1;
ALTER TABLE PARTSUPP SET TIFLASH REPLICA 1;
ALTER TABLE REGION SET TIFLASH REPLICA 1;
ALTER TABLE NATION SET TIFLASH REPLICA 1;
ALTER TABLE ORDERS SET TIFLASH REPLICA 1;
ALTER TABLE SUPPLIER SET TIFLASH REPLICA 1;
ALTER TABLE lineitem SET TIFLASH REPLICA 1;

执行explain指令,即可复现问题(1)

explain analyze SELECT /+ READ_FROM_STORAGE(TIKV[customer, orders])/ count(*) from customer, orders;

连接数据库并设置相关系统变量:

set @@session.tidb_allow_mpp=0;
set @@session.tidb_enforce_mpp=0;

执行explain指令,即可复现问题(2)

explain analyze SELECT /+ READ_FROM_STORAGE(TIKV[customer, orders])/ count(*) from customer, orders;

我今天也遇到hint没生效的问题了,结果是mysql客户端忘记加–comments了,默认会忽略掉注释

2 个赞

谢谢……之前没有用过MySQL hint,才知道默认是忽略hint的,闹出笑话了~

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。