首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SpringBatch -使用Mysql性能

SpringBatch -使用Mysql性能
EN

Stack Overflow用户
提问于 2022-06-30 09:07:15
回答 1查看 22关注 0票数 0

我不确定这是mysql问题还是spring批。

我使用spring批处理从mysql数据库读取数据(使用JdbcPagingItemReader),我试图读取的记录接近100万条,pageSize为10000,问题是每批10000条记录的读取操作非常慢。我用explain分析了sql,这是因为即使有索引和所有,由于按主键排序,mysql使用内部文件。

以前有没有人遇到过类似的问题?

对不起,如果细节不够(我没有提供查询,但它的简单查询有两个联接和组by。所有连接ids都是索引的,排序是基于主键的)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-01 18:27:19

代码语言:javascript
复制
SELECT ...
    GROUP BY ...
    ORDER BY ...
    LIMIT 10000

必须在施加限制之前进行分组和排序。

在某些情况下,查询可以“向内翻”以首先定位10000 (在子查询中),然后执行联接等操作,这可能会运行得更快。

我们需要研究实际的查询,而不是泛化。另外,请提供SHOW CREATE TABLE,可能缺少一个综合索引和/或一些数据类型问题。请提供生成的SQL,而不是Spring的表示。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72813118

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档