我有一个应用程序可以处理文件中的大量数据并将这些数据放入数据库中。它是单线程的;所以我创建了一个数据库连接,在该连接上创建准备好的语句,然后在处理数据时重用这些语句。我可能会处理数千个文件,并且可以一遍又一遍地重用相同的准备好的语句,但只更新值。这一直工作得很好,但是......
它已经到了处理文件花费太长时间的地步,而且由于它们都是独立的,我想同时处理它们。问题是每个文件可能使用 10 个准备好的语句。所以现在对于每个文件,我正在建立一个新的数据库连接(即使它们是池化的),设置这 10 个准备好的语句,然后关闭它们并关闭每个文件的连接;所以这种情况发生了成千上万次,而不是以前的一次。
我实际上没有做任何计时,但我很好奇这种使用连接和准备好的语句是否是最好的方法?一遍又一遍地设置这些准备好的语句真的很昂贵吗?有一个更好的方法吗?我读到您不想在线程之间共享连接,但也许有一个我没有想到的更好的解决方案?