各位好!
        
目前有一使用flink-sql编写的作业,其中存在通过jdbc查询mysql中某张表A需求,A表“b字段”为索引字段,但是flink-sql查询无法走到该表索引查询,为全表扫描查询。
        代码类似于
CREATE TABLE A (
b decimal(4, 0),
...,
...
) WITH (
'connector' = 'jdbc',
'url' = 'jdbc:mysql://100.191.200.10:9999/lldb',
'username' = 'test',
'password' = 'Test!123',
'table-name' = ‘A’
)
select * from A where b = 1234;
此时发送至数据库的查询为select * from A去掉了后面的where筛选条件,从而无法使用b字段索引查询,变为全表扫描。

此问题是否有办法解决呢?难道flink-sql是先在数据库中全表扫描,再在flink中执行筛选?这样数据库的查询效率极低。




回复