mysql表设计角色互斥_【数据库设计与实现】第五章:同步与互斥

5.1设计原则

数据库的一个重要能力就是为多个用户提供并发访问服务,并发度是考察数据库性能的重要指标之一。事务隔离级别定义了并发控制算法的正确性,并让用户通过选择隔离级别在正确性和高性能之间进行平衡。事务重点考虑的是数据层面的并发控制,是属于较上层的同步与互斥。实际上,数据库系统是由大量进程、线程、数据结构构成的,进程、线程会并发地访问、修改数据结构,还需要在较底层级解决数据结构的同步与互斥问题。只有通过底层的同步与互斥机制建立起正确的系统,才能进一步获得数据层面的并发控制能力。

同步与互斥涉及硬件、操作系统、数据库软件自身三个层面,越接近硬件构筑互斥能力,效率越好,但跨平台的能力也越差。为此,本章在Oracle、MySQL的基础上增加了Intel CPU和Linux操作系统关于同步与互斥的设计,从而进行全栈地比较。在设计同步与互斥时需要重点考虑如下几个方面:

申请的时延;

系统的效率,包括系统总线负载、CPU负载以及随CPU数量的扩展情况;

公平性,多个进程或线程竞争互斥对象时,大家获取互斥对象的概率是否是相等的;

可分析、可配置能力,同步与互斥是高并发的基础,当并发性达不到预期时,是否有充分的、直观的跟踪数据供分析出关键竞争热点,并具备进一步配置调整的能力;

存储空间,为了提升并发性能一般会对被保护的资源进行切分,这会引入大量的同步与互斥对象;

5.2 CPU设计原理

5.2.1 CPU基本特性

5.2.2 硬件系统的架构

5.2.3 缓存一致协议

5.2.4 原子指令

5.2.5 原子指令的成本

5.3 Linux设计原理

5.3.1 总体设计

5.3.2 原子函数

5.3.3 Spinlock

5.3.4 Semaphore

5.3.5 Mutex

5.3.6 RCU

5.4 Oracle设计原理

5.4.1 综述

5.4.2 Latch基本特性

5.4.3 Latch的实现

5.4.4 Latch布局

5.4.5 Mutex

5.5 MySQL设计原理

5.5.1 Mutex

5.5.2 RW-Lock

5.5.3 PolicyMutex

5.6 总结与分析

附件:博客布局不利于展示表格等内容,本章节详细内容见附件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值