【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】
加了表别名查询不走tiflash。怎么优化让走;在不设置tidballowmpp和tidbenforcempp
【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】
这个工具识别注释吗? 你试试mysql -c 打开一个连接
切换到表的db,然后sql里把库名.去掉 能用别名
现在我需要多库的表做join,切换了话其他库的表也是没跑到tiflash,我想全部指定到tiflash去.
你会话设置tidb_allow_Mpp变量on , 不加hint 看看自己能走tiflash吗
设置了会走,现在只改SQL和tidb配置的情况下,怎么让他走呢?
感觉这个需要研发修复
可以先用折中的办法弄啊
单独弄个tidb,设置强制引擎走tifalsh,
1、确定你的客户端连接是否支持Hints?
MySQL 命令行客户端在 5.7.7 版本之前默认清除了 Optimizer Hints。如果需要在这些早期版本的客户端中使用 Hint 语法,需要在启动客户端时加上 --comments
选项。例如 mysql -h 127.0.0.1 -P 4000 -uroot --comments
。
2、你的取了别名,连接的时候用的不是表所属的数据库,需要在别名前把数据库名也指定,如t1表在db_name1数据库,而t2表在db_name2 ,写法应是 /*+ READ_FROM_STORAGE(TIFLASH[db_name1.t1], TIKV[db_name2.t2]) */
3、如果不生效,可以通过show warnings看下为啥不生效。
tidb_isolation_read_engines='tidb,tiflash’这个变量
我之前也遇到过,这个Hints 感觉很难用对。
不过,如果是想这个 SQL 所有表都走 TiFlash 可以试下7.5新增的SET_VAR(VAR_NAME=VAR_VALUE) Hint,直接通过临时改变 SQL 的变量值实现的。
/*+ SET_VAR(tidb_isolation_read_engines='tidb,tiflash’) */
另外,你执行的 tidb-server 的tidb_isolation_read_engines
变量值是什么?如果没有包含TiFlash,是没办法通过READ_FROM_STORAGE这个HINT,让 SQL 走 TiFlash 引擎的。
这个是设了tidb,tikv,tiflash的
那试下这个 HINT 试下,看能不能达到效果
额,不对,你先试下这个写法,我看你问题里贴的 SQL,加了别名,但是 HINTS 直接写的是表名。要用TIFLASH[db_name1.t1]
这种方式