• 高性能mysql笔记 第一章 mysql架构


    1.1  mysql逻辑结构

      

        第一层: 负责连接处理,授权认证,安全等事情

        第二层:负责mysql的大部分核心功能 ,查询解析,分析,优化,缓存和所有的内置函数,所有跨存储引擎的功能都在这一层实现,,存储过程,视图,触发器等

        第三层:存储引擎,负责mysql中数据的提取和存储;

    1.2 并发控制——

       共享锁:也叫读锁,读锁是共享的,多个连接可以同时获取数据并互不干扰!

       排他锁:也叫写锁,排他性,阻塞其他的写锁和读锁;在同一时间内,只能有一个用户执行写入操作,并且防止其他用户进行读取正在写入的同一资源,

       锁粒度 

        表锁:表锁是mysql中最基本的锁策略,并且是开销最小的策略,它锁定整张表,当有用户对它进行(insert,delete,update)操作时,首先获取写锁,阻塞其他的用户进行读写操作!

              read local 表锁在特定的情况下可以支持某些类型的并发写操作,,此外写锁拥有更高的优先级,因此一个写锁的请求可能会被插入到读锁队列的前面

        行级锁:行级锁可以最大程度的支持并发处理,同时也会对性能开销更大!

    1.3 事物管理

       原子性:一个事务必须被认为是一个不可以分割的最小工作单元,事务内的操作要么全部提交成功,要么失败回滚,对于事务来说不能只执行其中的一部分!这就是事务的原子性

      一致性:数据库总是从一个一致性状态转移到另一个一致性状态

      隔离性:一个事务中所做的操作在未最终提交前,对其他事务是不可见的

      持久性:一旦事务提交,则其所做的修改就会永久的保存到数据库中!

      并发情况下带来的问题

        1、脏读:事务A读取了事务B更新的数据,然后B回滚操作,那么A读取到的数据是脏数据

        2、不可重复读:事务 A 多次读取同一数据,事务 B 在事务A多次读取的过程中,对数据作了更新并提交,导致事务A多次读取同一数据时,结果 不一致。

        3、幻读:系统管理员A将数据库中所有学生的成绩从具体分数改为ABCDE等级,但是系统管理员B就在这个时候插入了一条具体分数的记录,当系统管理员A改结束后发现还有一条记录没有改过来,就好像产生了幻觉一样,这就叫幻读。

          mysql在的innoDB和XtraDB通过多版本并发控制(MVCC,Multiversion Concurrency  Control)解决了幻读的问题

        小结:不可重复读的和幻读很容易混淆,不可重复读侧重于修改,幻读侧重于新增或删除。解决不可重复读的问题只需锁住满足条件的行,解决幻读需要锁表

      事务隔离级别

       

  • 相关阅读:
    一个小时前,美国主流媒体,头条,谷歌两位创始人突然宣布退下来,把万亿美元的帝国交给Sundar Pichai
    Fox新闻报道,帮助北朝鲜使用加密货币专家被捕
    看新闻,说墨西哥政府发起了一个军事行动,抓住了11月杀死9位美国人的三名嫌疑犯
    黑五千万不要去商场,就像打仗一样。
    Facebook 一个热搜帖,美国一个老人癌症不治最后的心愿是跟儿子喝啤酒。
    这周末又参加班里同学生日party,同学父母包场2小时花费大约1000美金左右。
    Google谷歌总部员工家庭活动
    800年没有写博客了,今天重新开始。
    iOS image processing with the accelerate framework(透明玻璃效果)
    Custom View Controller Transitions and Storyboard
  • 原文地址:https://www.cnblogs.com/shenwenbo/p/8066795.html
Copyright © 2020-2023  润新知