shardingsphere启动后,不定时加载元数据

方便更快捷的说明问题,可以按需填写(可删除)

使用环境:生产

场景、问题:shardingsphere启动后,每天不定时加载元数据几十次。没有执行DDL语句和distsql。执行的元数据加载SQL:

SELECT TABLE_NAME, COLUMN_NAME, DATA_TYPE, COLUMN_KEY, EXTRA, COLLATION_NAME, ORDINAL_POSITION FROM information_schema.columns WHERE TABLE_SCHEMA='库' ORDER BY ORDINAL_POSITION

中间没有操作DDL也没distsql,yaml配置如下

spring:
  shardingsphere:
    # 调试的时候可以开启SQL打印
    props:
      sql-show: true
      # 同时可提供32条线程供sqlstatment执行
      max:
        connections:
          size:
            per:
              query: 32

    # 配置数据源
    # 就算不分库,数据源也要配置两个,两个都是同数据源即可、
    # 单数据源会导致加载全部表的元数据,导致启动超时
    datasource:
      ds-0:
        driver-class-name: com.mysql.cj.jdbc.Driver
        type: com.alibaba.druid.pool.DruidDataSource
        url: 
        username: 
        password: 
        maxWait: 60000
        maxActive: 1000
        maxIdle: 20
        initialSize: 20
        removeAbandoned: true
        validationQuery: SELECT 1
        testOnBorrow: false
        testOnReturn: false
        testWhileIdle: true
      names: ds-0
    rules:
      sharding:
        tables:
          # 分表,由于H2数据库大小写敏感,所以表名大写,如果是mysql则可以全部小写
          t_user:
            # 真实表的分片表达式
            actualDataNodes: ds-0.t_user_$->{0..31}
            # 主键id生成
            keyGenerateStrategy:
              column: user_id
              props:
                worker:
                  id: 100
              keyGeneratorName: SNOWFLAKE
            # 分表策略 自定义精确分片
            tableStrategy:
              standard:
                shardingAlgorithmName: useralg
                shardingColumn: user_id
        sharding-algorithms:
          useralg:
            type: CLASS_BASED
            props:
              strategy: STANDARD
              algorithmClassName: xxx.UserComplexKeysShardingAlgorithm

已进行操作:

现状:

每天不定时执行几十次元数据加载,元数据本来就比较慢了,还加载几十次

您好, 可以把日志附加一下吗?

没有什么日志哦,我是通过MYSQL的慢查询里面发现执行的

这个就不太好排查了, 可以把 sql_show 配置设置为 true. 得到日志后再分析下.

京ICP备2021015875号