use*_*702 6 java mysql sql multithreading
首先,我知道这稍微宽泛且基于意见,但我只想简单回答多线程在Java中使用SQL查询的应用程序的最佳实践.
我正在制作一个程序,需要在主线程的每次迭代中同步MySQL数据库中的数据.我想多线程这个程序,以便长查询不会保持主线程并减慢它的'滴答'速率.
我不善于解释我用语言提出的解决方案,所以我制作了这张图片,希望能更好地解释它们.

这些方式中的任何一种都是"正确"的做事方式吗?
我记得有些事情可能会一次发送多个查询,然后在最后等待结果,这是可能的,一次应该发送多少个查询?
是否应该为每个查询使用单独的线程,如果是这样,我怎么能更快地实现这一点,因为我理解创建线程的开销非常大.
感谢您阅读我可怕的措辞和非常长的问题,提前感谢任何帮助.
MySQL 可以并行执行查询,但不是很多(我认为是 10-15)。所以我会创建一个 10-15 个线程的池,具有用于查询的公共阻塞队列,每个线程都有自己的数据库连接。每个工作线程执行一个循环:进行下一个查询,访问数据库,以某种方式返回结果。调整线程数以找到最佳值。