【 TiDB 使用环境】生产环境
【 TiDB 版本】v7.5.1
【复现路径】CREATE GLOBAL BINDING
【遇到的问题:问题现象及影响】创建 binding 后 explain analyze 没有问题。但是直接执行语句没有起作用。
CREATE GLOBAL BINDING for
SELECT
COUNT(1)
FROM
`rec_vaccination_record` `v`
INNER JOIN `sys_vaccination_unit` `vu` ON (`v`.`vaccination_unit_id` = `vu`.`id`)
INNER JOIN `sys_area_township` `t` ON (`vu`.`area_township_id` = `t`.`id`)
AND (`t`.`is_deleted` = 0)
INNER JOIN `sys_area_county` `co` ON (`t`.`parent_id` = `co`.`id`)
AND (`co`.`is_deleted` = 0)
INNER JOIN `sys_area_city` `ci` ON (`co`.`parent_id` = `ci`.`id`)
AND (`ci`.`is_deleted` = 0)
WHERE
(`ci`.`parent_id` = 15)
AND (
(
(
(
`v`.`traceability_code` IS NULL
OR `v`.`traceability_code` = ''
)
AND (`v`.`input_record_status` = 1)
)
AND (`v`.`creation_time` >= '2025-01-07 00:00:00')
)
AND (`v`.`creation_time` < '2025-02-07 00:00:00')
)
AND (`v`.`is_deleted` = 0)
USING
SELECT
/*+ use_index(`v` `idx_vaccr_creation_time`)*/
COUNT(1)
FROM
`rec_vaccination_record` `v`
INNER JOIN `sys_vaccination_unit` `vu` ON (`v`.`vaccination_unit_id` = `vu`.`id`)
INNER JOIN `sys_area_township` `t` ON (`vu`.`area_township_id` = `t`.`id`)
AND (`t`.`is_deleted` = 0)
INNER JOIN `sys_area_county` `co` ON (`t`.`parent_id` = `co`.`id`)
AND (`co`.`is_deleted` = 0)
INNER JOIN `sys_area_city` `ci` ON (`co`.`parent_id` = `ci`.`id`)
AND (`ci`.`is_deleted` = 0)
WHERE
(`ci`.`parent_id` = 15)
AND (
(
(
(
`v`.`traceability_code` IS NULL
OR `v`.`traceability_code` = ''
)
AND (`v`.`input_record_status` = 1)
)
AND (`v`.`creation_time` >= '2025-01-07 00:00:00')
)
AND (`v`.`creation_time` < '2025-02-07 00:00:00')
)
AND (`v`.`is_deleted` = 0)
创建后执行 explain analyze
直接执行语句
执行 select @@last_plan_from_binding
返回0