这更像是一个“请确认/纠正我的理解”的问题。
背景 我使用 JDBC 连接到 MySQL,连接池有大约 250 个连接,其中大多数连接即使在查询终止后也似乎持续连接 - 全部使用相同的用户帐户。我希望使用临时表的存储过程由 Java 代码调用,并对 JSON 列执行转换,将其转换为不同表的行。该转换相对昂贵,可能会在数千行上执行,因此我不希望多次执行该转换。为了解决这个问题,我建议的解决方案是将数据转换为临时表,围绕现在转换的数据执行统计查询,然后将其批量插入到目标表中。
问题 我读过临时表绑定到User。我的理论是否正确,因为连接似乎从未终止并且都使用相同的用户帐户,所以在过程中创建的临时表将在所有连接和查询之间共享(因此数据可以由运行该连接的其他连接访问)同时执行相同的程序)?
限制 我想要做的是要么传输原始数据,要么执行转换并将该数据传输回 Java。然而,我们每次处理大约几百兆字节的数据,并且数据传输回 Java 似乎会锁定数据库,直到完成传输。(我不确定为什么,如果有人有解决这个问题的建议,请告诉我)
因此,我唯一能想到的其他解决方案是不传输源数据,而是执行转换,收集我需要的聚合数据,然后将转换后的数据插入到目标,而无需离开数据库服务器。
提前致谢