![Mysql单个连接由多个java线程共享吗?](https://linux22.com/image/578203/Mysql%E5%8D%95%E4%B8%AA%E8%BF%9E%E6%8E%A5%E7%94%B1%E5%A4%9A%E4%B8%AAjava%E7%BA%BF%E7%A8%8B%E5%85%B1%E4%BA%AB%E5%90%97%EF%BC%9F.png)
我有一个启动了多个线程的 Java 应用程序,它们都共享在主函数中创建的单个数据库连接。到目前为止,一切运行顺利。我担心将来会出现任何问题,例如损坏等?
答案1
如果出现以下情况,您将会遇到问题:
- 您使用事务。两个线程在同一个连接上启动事务对您的数据不利。想想如果一个线程想要回滚,mysql 会怎么做
- 您使用自动增量和LAST_INSERT_ID
。如果两个线程同时在同一个表上工作,如果它们共享同一个连接
,则最后一个 id 对它们来说是相同的 - 如果您不只使用“简单”的东西(又名select/insert/update
),可能会出现更多问题