数据库并发的一点思考

2017-09-21  本文已影响97人  剽悍一只鸡

1,操作背景

当有多个线程并发操作上千条数据的时候,就会出现了以下的问题:

1,数据库连接数的不够,在并发数为50的时候,出现以下问题


sqlerror.png

1.1,进行解决:

在项目的配置文件applicationContext.xml中进行更改数据库的最大同时连接数和最大连接数:

        <property name="maximumConnectionCount" value="200"/>
        <property name="minimumConnectionCount" value="2"/>
        <property name="simultaneousBuildThrottle" value="150"/>
        <property name="prototypeCount" value="5"/>

2,并发同时操作发生数据的更新不一致:
出现了脏读,重复读的问题:多个线程同时读一个数据,当第一个读到数据时操作了并未提交,而第二个操作还是在原来的数据上进行操作的,即:一个事务访问数据,并进行修改,但尚未提交到数据库;另一个事务也访问这条数据,然后进行操作,这个事务读取的是尚未更新的脏数据。

2.1,解决方法:

上一篇 下一篇

猜你喜欢

热点阅读