我不确定这是mysql问题还是spring批。
我使用spring批处理从mysql数据库读取数据(使用JdbcPagingItemReader),我试图读取的记录接近100万条,pageSize为10000,问题是每批10000条记录的读取操作非常慢。我用explain分析了sql,这是因为即使有索引和所有,由于按主键排序,mysql使用内部文件。
以前有没有人遇到过类似的问题?
对不起,如果细节不够(我没有提供查询,但它的简单查询有两个联接和组by。所有连接ids都是索引的,排序是基于主键的)
发布于 2022-07-01 18:27:19
SELECT ...
GROUP BY ...
ORDER BY ...
LIMIT 10000必须在施加限制之前进行分组和排序。
在某些情况下,查询可以“向内翻”以首先定位10000 (在子查询中),然后执行联接等操作,这可能会运行得更快。
我们需要研究实际的查询,而不是泛化。另外,请提供SHOW CREATE TABLE,可能缺少一个综合索引和/或一些数据类型问题。请提供生成的SQL,而不是Spring的表示。
https://stackoverflow.com/questions/72813118
复制相似问题