zoukankan      html  css  js  c++  java
  • 意向锁如何提高性能 天高地厚

    假设有一个张表Student,有100万条数据,其中有三行:

          Name Age

          张三    -11

          李四    -13

          王五    14

          程序员A发现数据有错误,有一些学生的年龄有负数,他连接数据库,打算把所有的负数变成正数,并且希望在修改的时候,别人不可以读取数据。此时他对两行数据加了X排他锁。

          程序员B发现有几个的姓名写错了,要修改,这时他打算给整张表加上S锁,也就是,别人可以读取数据,但是不能修改。这时数据库需要判断,这张表是否可以加S锁?如何判断呢:要看这张表中的100万行数据中有没有X锁,如果被加锁的这两行数据刚好在最后,那么要判断100万次才能得出结论:有一行加了X锁,该表不能加S锁,请等待该锁释放!显然这速度慢得多。假如有了意向锁,在A连接的时候,给行加上X锁的时候,对该表加上IX锁。B连接申请表的S锁之前,先看到该表有IX锁,就马上知道需要等待,而不需要去判断每一行的锁了。

  • 相关阅读:
    分享到新浪微博js
    好的读书网站发现、翻译 阅读中文之外的互联网精华
    ps字体下载素材网址
    如何使用HTML5,CSS3和PHP创建一个联系表格
    css3 精品网站
    IE6解决无法实现position:fixed浮动层固定在滚动页面(无抖动)
    nginx笔记
    给力shell命令
    常用v_视图
    关于获取运营商的IP地址
  • 原文地址:https://www.cnblogs.com/net2012/p/3081892.html
Copyright © 2011-2022 走看看