• 数据库锁机制


      数据并发会引起很多问题,数据库通过锁机制来解决并发访问的问题,虽然不同的数据库在实现细节上存在差别,但是原理都差不多,下面介绍一下数据库的锁机制

      按锁定的对象不同分为表锁定和行锁定,表锁定对整个表进行锁定,行锁定针对特定的行进行锁定,从并发事务锁定的关系上看,可以分为共享锁定和独占锁定,共享锁定会防止独占锁定,允许其他的共享锁定,而独占锁定既防止其他的独占锁定,也防止其他的共享锁定。下面介绍一下oracle的五种锁定:

      1 行共享锁定:一般通过select for update 语句隐式获得行共享锁定,在oracle中用户可以通过lock table in row share mode 语句显示获得行共享锁定。行共享锁定并不防止对数据进行更改操作,但是防止其他会话获取独占性数据表锁定。

      2 行独占锁定:通过一条insert,update,delete语句隐式获取,或者通过一条lock table in row exclusive mode 语句显示获取。这个锁定可以防止其他会话获取一个共享锁定,共享行独占锁定或者独占锁定。

      3 表共享锁定:通过一条lock table in share mode 语句显示获得,这种锁定可以防止其他会话获取行独占锁定(insert,update,delete),或者防止其他表行独占锁定或者表独占锁定,他允许在表中拥有多个行共享和表共享锁定

      4 表共享行独占:通过lock table in share row exclusive mode 语句显示获得,这种锁定可以防止其他会话获取一个表共享锁定,只是一次只能对一个表放置表共享行独占锁定

      5 表独占:通过lock table in  exclusive mode显示获得,这个苏定防止其他会话对该表的任何其他锁定

  • 相关阅读:
    利用memcache实现,防止连续点击及每天点击次数
    Laravel 5.5 FormRequest 自定义表单请求验证类
    memcache安装及使用
    php查看当天访问量代码,以及每天访问量历史记录(本方法是存文件里,不是存数据库)
    SQL语句多个字段排序
    【C++】rand()函数,时间种子
    【C++】颜色的设置
    【堆栈应用一】一个数divided=几个最小质因数的乘积
    【JSP】中文乱码问题
    【汇编】MASM6.15几个简单的汇编程序
  • 原文地址:https://www.cnblogs.com/jtjs1989/p/3524655.html
Copyright © 2020-2023  润新知