数据库
coconason
这个作者很懒,什么都没留下…
展开
-
并发访问时,在数据库如何安全地修改同一行数据
要安全的修改同一行数据,就要保证一个线程在修改时其它线程无法更新这行记录。 在这种情况下可以考虑使用悲观锁。悲观锁设定每次修改都会冲突。 本质是当前只有一个线程执行操作,结束了唤醒其他线程进行处理。 Mysql中的有两种方法:select…for update或lock in share mode。 Select...for update的实现方式: s原创 2018-02-07 16:06:26 · 10929 阅读 · 0 评论 -
Mysql数据库的悲观锁和乐观锁
一次数据库的修改数据的过程包括:读取,修改,写入。 悲观锁,认为在整个过程中都会面临数据被其他session修改的可能性,所以为了保证修改过程能顺利进行,使用排它锁保证在当前session修改数据时,不允许其他session修改相同行的数据。 乐观锁,认为在读取和修改的时候不会有session修改同行数据,所以它只在写入的时候进行一下检查版本号。如果版本号没有变,也就是说读取数据和写入新数原创 2018-02-07 16:21:05 · 221 阅读 · 0 评论 -
数据库死锁问题
死锁是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象。若无外力作用,它们都将无法推进下去.此时称系统处于死锁状态或系统产生了死锁。产生死锁的四个必要条件:1.互斥条件:一个资源每次只能被一个进程使用。 2.请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。3.不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。 4.循环等待条件:若干进程之间形成...原创 2018-02-08 09:15:54 · 167 阅读 · 0 评论 -
SQL 优化方法
原创 2018-02-08 09:53:14 · 224 阅读 · 0 评论