美文网首页
数据库并发的一点思考

数据库并发的一点思考

作者: 剽悍一只鸡 | 来源:发表于2017-09-21 00:31 被阅读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,解决方法:

  • 查看数据更新时在哪里更新的,如果是在代码里进行更新,如: money=money-1,没有在数据库进行更新的话,就可能不保持数据的原子性。所以说更新数据的操作是要在数据库的SQL语句中进行的。

  • 如果还是不能解决的话要考虑在代码中运用事务和锁的机制进行解决,锁的机制可以让线程变成同步操作加sync关键字,或者是在方法上加上@Transction 的开启事务的方法,不过在数据库中默认是有事务开启的,而且要是在代码中进行事务锁机制的操作会影响数据库的操作性能的

相关文章

  • 数据库并发的一点思考

    1,操作背景 当有多个线程并发操作上千条数据的时候,就会出现了以下的问题: 1,数据库连接数的不够,在并发数为50...

  • MySQL中的锁2-事务隔离级别

    数据库中并发存在的问题 数据库能够让应用程序并发访问,在并发访问数据库实例过程中可能会出现以下4种现象。 丢失更新...

  • 电商平台高并发思考-幂等性(1)

    电商平台下高并发经典问题在实际的项目中需要积极的思考,高并发场景下接口幂等性,分布式事务,数据库锁,分布式事...

  • 数据库-并发调度(未完结)

    数据库 • 数据库的并发调度 由于数据库中的数据具备共享性,所以数据库中的数据就支持了多个用户的访问 • 并发调度...

  • 一文理解Mysql MVCC

    MVCC 就是多版本并发控制。MVCC 是一种并发控制的方法,一般在数据库管理系统中,实现对数据库的并发访问。 为...

  • Android数据库开源框架GreenDao分析

    前段时间写Demo的时候遇到了数据库的并发问题 Android数据库多线程并发操作异常[https://www.j...

  • 数据库的隔离级别和 MVCC

    MVCC (Multi-Version Concurrency Control),多版本并发控制。数据库实现并发访...

  • 你应该了解的MySQL锁分类

    MySQL中的锁 锁是为了解决并发环境下资源竞争的手段,其中乐观并发控制,悲观并发控制和多版本并发控制是数据库并发...

  • 索引

    并发编程 线程的等待 阻塞队列和Condition Pool 数据库 高并发 MVCC redo undo B...

  • Spring Boot 的 MySQL 原来这么简单!

    前言 首先思考一个问题:在高并发的场景中,关于数据库都有哪些优化的手段?常用的有以下的实现方法:读写分离、加缓存、...

网友评论

      本文标题:数据库并发的一点思考

      本文链接:https://www.haomeiwen.com/subject/inbasxtx.html