I have a java application with multiple thread started and they are all sharing a single db connection created in the main function. So far things have been running smoothly. I am worried will there be any problem in future like corruption etc?
1 Answer
You will have problem if:
- you use transactions. Two threads starting transactions on the same connection would not be nice for your datas. Think about what mysql will do if one thread want a rollback
- you use auto increment and LAST_INSERT_ID
. If two threads work on the same table at the same moment, the last id is the same for both if they share the same connection
- and maybe much more problems if you don't only use "simple" things (aka select/insert/update
)
-
thank you for the input yes each of my thread is using one transaction and sure enough I am using last_insert_id too. So what is your best suggestion then use individual connection is it but that will end up with too many connection problems right? Mar 11, 2012 at 4:55
-
so far I have been experimenting with 20 thread looks ok on the last_insert_id not much conflicts? But do you expect in future there might be a problem is it? Mar 11, 2012 at 5:07
-
I just saw your comments. You can use really lots of connections before this will be a problem. Just adjust mysql config file in case you have really too many, but in this case you'll have a big server so no problem at all. May 23, 2012 at 2:25