1
在使用 druid 解析长 sql 时,会出现整个线程使用率达 100 %,且无法中断的问题 相关代码:
SQLStatement statement;
MySqlSchemaStatVisitor visitor;
try {
statement = SQLUtils.parseSingleMysqlStatement(sql);
visitor = new MySqlSchemaStatVisitor();
statement.accept(visitor);
} catch (Exception e) {
e.printStackTrace();
}
通过火焰图分析,整个 sql 解析大部分时间耗在了 SchemaStatVisitor 的column解析中
通过 thread dump 可以更清晰的看到对应的代码行数