我在mybatis中有一个sql查询,它输出大约35000条记录。我想计算查询执行所花费的时间,然后分别将这些输出行转换为java对象。此查询花费将近3秒。但是当查询直接在mysql工作台中执行时,它只需要0.003秒。
答案 0 :(得分:0)
仅使用mybatis日志记录或类似的东西,你不能轻易做到这一点。
问题是查询执行的这两个阶段没有明确分开。转换从数据库检索的数据的某些部分发生在JDBC驱动程序本身中,而某些部分则在mybatis映射器中完成。 还有花时间将数据从数据库发送到您的程序(确保在工作台中运行查询时考虑到这一点)。
您最好的选择是使用分析器并可能在循环中运行查询,然后检查分析器在哪里花费时间。