当前位置: 首页 > news >正文

洮南住建局网站制作网站购买主机

洮南住建局网站,制作网站购买主机,百度app推广方法,给设计网站做图会字体侵权吗文章目录 一、概述二、MySQL并发事务访问相同记录2.1、读-读2.2、写-写2.3、读-写2.4、并发问题的解决方案 三、锁的不同角度分类3.1、 读锁、写锁3.1.1、 锁定读 3.2、表级锁、页级锁、行锁3.2.1、表锁3.2.2、意向锁3.2.2.1、意向锁的作用3.2.2.2、意向锁的互斥性 3.2.3、自增… 文章目录 一、概述二、MySQL并发事务访问相同记录2.1、读-读2.2、写-写2.3、读-写2.4、并发问题的解决方案 三、锁的不同角度分类3.1、 读锁、写锁3.1.1、 锁定读 3.2、表级锁、页级锁、行锁3.2.1、表锁3.2.2、意向锁3.2.2.1、意向锁的作用3.2.2.2、意向锁的互斥性 3.2.3、自增锁AUTO-INC锁3.2.4、元数据锁MDL锁 一、概述 在数据库中除传统的计算资源如CPU、RAM、I/O等的争用以外数据也是一种供许多用户共享的资源。为保证数据的一致性需要对 并发操作进行控制 因此产生了 锁 。同时 锁机制 也为实现MySQL的各个隔离级别提供了保证。 锁冲突 也是影响数据库 并发访问性能 的一个重要因素。所以锁对数据库而言显得尤其重要也更加复杂。 二、MySQL并发事务访问相同记录 并发事务访问相同记录的情况大致可以划分为3种 2.1、读-读 读-读 情况即并发事务相继 读取相同的记录 。读取操作本身不会对记录有任何影响并不会引起什么问题所以允许这种情况的发生 2.2、写-写 有线程安全问题可能会存在更新丢失问题比如第一类更新丢失第二类更新丢失 2.3、读-写 有线程安全问题可能会造成事务隔离性问题可能遇到脏读幻读不可重复读 2.4、并发问题的解决方案 怎么解决 脏读 、 不可重复读 、 幻读 这些问题呢其实有两种可选的解决方案 读操作利用多版本并发控制 MVCC 写操作进行 加锁读、写操作都采用 加锁 的方式 采用 MVCC 方式的话 读-写 操作彼此并不冲突 性能更高。采用 加锁 方式的话 读-写 操作彼此需要 排队执行 影响性能。 三、锁的不同角度分类 3.1、 读锁、写锁 读锁 也称为 共享锁 、英文用 S 表示。针对同一份数据多个事务的读操作可以同时进行而不会互相影响相互不阻塞的。写锁 也称为 排他锁 、英文用 X 表示。当前写操作没有完成前它会阻断其他写锁和读锁。这样就能确保在给定的时间里只有一个事务能执行写入并防止其他用户读取正在写入的同一资源。 需要注意的是对于 InnoDB 引擎来说读锁和写锁可以加在表上也可以加在行上 3.1.1、 锁定读 SELECT ... LOCK IN SHARE MODE; #或 SELECT ... FOR SHARE; #8.0新增语法在普通的SELECT语句后边加LOCK IN SHARE MODE如果当前事务执行了该语句那么它会为读取到的记录加S锁。 SELECT ... FOR UPDATE;在普通的SELECT语句后边加FOR UPDATE如果当前事务执行了该语句那么它会为读取到的记录加X锁。这样既不允许别的事务获取这些记录的S锁也不允许获取这些记录的X锁。如果别的事务想获取这些记录的S锁或X锁那么它们会阻塞直到当前事务提交之后将这些记录上的X锁释放掉。 3.2、表级锁、页级锁、行锁 为了尽可能提高数据库的并发度每次锁定的数据范围越小越好理论上每次只锁定当前操作的数据的方案会得到最大的并发度但是管理锁是很耗资源的事情涉及获取、检查、释放锁等动作)。因此数据库系统需要在高并发响应和系统性能两方面进行平衡这样就产生了“锁粒度(Lock granularity)”的概念。   对一条记录加锁影响的也只是这条记录而已我们就说这个锁的粒度比较细;其实一个事务也可以在表级别进行加锁自然就被称之为表级锁或者表锁对一个表加锁影响整个表中的记录我们就说这个锁的粒度比较粗。锁的粒度主要分为表级锁、页级锁和行锁。 3.2.1、表锁 3.2.2、意向锁 3.2.2.1、意向锁的作用 InnoDB 支持 多粒度锁multiple granularity locking 它允许 行级锁 与 表级锁 共存而意向锁就是能和行级锁共存的一种 表锁 。 意向锁解决的问题是   现在有两个事务分别是T1和T2其中T2试图在该表级别上应用共享或排它锁如果没有意向锁存在那么T2就需要去检查各个页或行是否存在锁假设表中数据有100000行是很费时间的;如果存在意向锁那么此时就会受到由T1控制的表级别意向锁的阻塞。T2在锁定该表前不必检查各个页或行锁而只需检查表上的意向锁。简单来说就是给更大一级别的空间示意里面是否已经上过锁。   在数据表的场景中如果我们给某一行数据加上了排它锁数据库会自动给更大一级的空间比如数据页或数据表加上意向锁告诉其他人这个数据页或数据表已经有人上过排它锁了这样当其他人想要获取数据表排它锁的时候只需要了解是否有人已经获取了这个数据表的意向排他锁即可。 意向锁分为两种 意向共享锁intention shared lock, IS事务有意向对表中的某些行加共享锁S锁 -- 事务要获取某些行的 S 锁必须先获得表的 IS 锁。 SELECT column FROM table ... LOCK IN SHARE MODE;-- 假设本次查询只对三条数据加了S锁InnoDB会自动给该表加IS锁意向排他锁intention exclusive lock, IX事务有意向对表中的某些行加排他锁X锁 -- 事务要获取某些行的 X 锁必须先获得表的 IX 锁。 SELECT column FROM table ... FOR UPDATE;即意向锁是由存储引擎 自己维护的 用户无法手动操作意向锁在为数据行加共享 / 排他锁之前InooDB 会先获取该数据行 所在数据表的对应意向锁 。 3.2.2.2、意向锁的互斥性 即意向锁之间是互相兼容的虽然意向锁和自家兄弟互相兼容但是它会与普通的排他/共享锁互斥。 注意这里的排他/共享锁指的都是表锁意向锁不会与行级的共享/排他锁互斥。 IXIS是表级锁不会和行级的XS锁发生冲突。只会和表级的xs发生冲突。 3.2.3、自增锁AUTO-INC锁 本次学习不做了解。 3.2.4、元数据锁MDL锁
http://wiki.neutronadmin.com/news/426055/

相关文章:

  • 成都做营销型网站建设人际网络网络营销是什么
  • 西安道桥建设有限公司网站自己做网站要学什么软件
  • 响应式环保网站模板10种网络营销方式
  • 上海做网站建设公司做专题页的网站
  • 设计网站排行榜前十名站长网站素材
  • 徐州万网网站建设网站设计的介绍模板
  • 如何建设一个国外网站人力资源公司怎么找客户
  • 简要说明网站建设的基本流程本地wordpress如何同步
  • 永久免费网站推荐帮人做彩票网站
  • 中山企业集团网站建设成都网站建设思乐科技
  • 网站建设详细步骤国内网站域名
  • 备案查询站长之家做模板网站的公司
  • 重庆快速网站推广在线考试网站模板
  • 公司网站建设怎么规划比较好用网站建设与管理创业
  • 苏州住建网站企石仿做网站
  • 广安发展建设集团公司网站注册一个公司
  • 产品外包装设计网站建设证书查询官方网站
  • 安徽省经工建设集团网站网站模板库软件
  • 网站站点创建成功是什么意思如何免费创建网站
  • 厦门网络公司网站开发美食网页设计论文
  • 网站开发周期价格微网站做下载链接
  • 小甲鱼网站开发网站评测的作用
  • 微信群公告如何做网站链接做网站开发需要学什么
  • 建设外贸网站报价做网站一定要正版系统吗
  • 南京制作手机网站科技感网页模板
  • 低价网站建设为您公司省去了什么做网站界面的软件
  • 响应页手机网站源码主做收影视出版的小说网站
  • 自己建网站好还是用淘宝做好wordpress电视剧
  • 推广网站名是什么海口网站建设q479185700棒
  • 房地产政策东莞网络排名优化