多线程并发操作是否对数据库数据有影响?
大家好:
请教大家一个问题,多线程查询oralce数据库,会不会查到重复的数据和丢失数据?
回答:
m 个 thread,1 个 db conn。不加锁,共享该链接,结果就是扑街 ❌
m 个 thread,1 个 db conn。加锁,共享该链接,但不同时共享,结果就是 ok ✔️
m 个 thread,m 个 db conn。每个 thread 拥有独立的 db conn,结果就是 ok (对应的概念叫做 TLS(Thread Local Storage)
) ✔️
m 个 thread,n 个 db conn。搞个 db conn pool,每个线程从 pool 获取 db conn,用完再放回 pool(同一时刻,一个 db conn 只会被 一个 thread 持有) ,结果就是 ok ✔️
以上是 多线程并发操作是否对数据库数据有影响? 的全部内容, 来源链接: utcz.com/p/944673.html