【TiDB 使用环境】生产环境
【TiDB 版本】
【操作系统】
【部署方式】
【集群数据量】
【集群节点数】
【问题复现路径】
where i_date in (
select max(I_DATE) I_DATE
from dim_date_month_dmi
where I_DATE >= ?
and I_DATE < ? and i_date>=20250428
group by DATE_FORMAT(D_DATE, '%Y')
) [20250331 20250430]
【遇到的问题:问题现象及影响】
这种方式提交查询,tidb卡住,不报错,也不返回,如果jdbc url参数添加interpolateParams=true,就能立马执行出来
如果代码里面手动把“?”替换为对应日期,也能立马能查出来
下面这样就很快
where i_date in (
select max(I_DATE) I_DATE
from dim_date_month_dmi
where I_DATE >= 20250331
and I_DATE < 20250430 and i_date>=20250428
group by DATE_FORMAT(D_DATE, '%Y')
)
下面这样也很快,总之只要不传“?”这种预编译,就很快
and I_DATE >= DATE_FORMAT(last_day(date_sub(current_date ,interval 1 month)),'%Y%m%d')
and I_DATE < DATE_FORMAT(current_date,'%Y%m%d')
注意上面只是片段
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【复制黏贴 ERROR 报错的日志】
【其他附件:截图/日志/监控】