我正在尝试通过Spring Batch从MySQL(5.7.22-22-log)下载数据。 大约有2亿行。 问题是
HikariPool-1-检测到线程饥饿或时钟跳动
或
HikariPool-1-连接com.mysql.jdbc.JDBC4Connection@7fece665由于SQLSTATE(08S01),ErrorCode(0)被标记为断开 com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信链接失败
被杀
现在,我正在尝试仅下载带有id-s的列,但实际上我需要添加几个join-s,它看起来不像是对查询的简化。
一般如何解决?
也许我可以部分下载?好了,我已经使用了参数访存大小和块大小,但是我猜想它们会在执行查询后应用,而我的查询还不能执行。
我的意思是部分下载并手动完成,例如选择具有此id-s间隔的数据,然后选择下一个等等。
但是我有一项计划工作,应该完成全部工作。 我应该以某种方式安排子例程并合并结果。
也许还有更先进的技术?
答案 0 :(得分:0)
也许可以增加MySQL数据库的超时时间。 我找到了此链接。 Increase MySQL Timeout
答案 1 :(得分:0)
以合理的块大小执行面向块的步骤是必经之路。但是,您需要确保正确设置MySQL连接的生存时间,以使MySQL服务器不会终止您的连接。您可以在以下答案中找到更多详细信息:https://stackoverflow.com/a/2748741/5019386