V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MaoRong
V2EX  ›  程序员

高性能 MySQL 学习 10 月

  •  
  •   MaoRong · 199 天前 · 1819 次点击
    这是一个创建于 199 天前的主题,其中的信息可能已经有所发展或是发生改变。

    服务器逻辑架构

    客户端
        连接线程处理
            查询缓存
            解析器
                优化器
                    存储引擎
    

    事务

    特性

    1.原子(事务内所有 sql 为一个原子),一致(事务内所有 sql 一起提交),隔离,持久(永久保留在数据库中)

    隔离级别

    1.未提交读( READ UNCOMMITTED ),事务可以读取未提交的数据,也叫脏读。
    2.提交读( READ COMMITED ),一个事务从开始到提交所做的任务修改对其他事务都是不可见的,也叫不可重复读。
    3.可重复读( REPEATABLE READ ),解决脏读的问题,保证同一个事务多次读取同样的记录结果是一致的,但随之会产生幻读(当一个事务读取某范围值时,另一个事务插入了新的记录,之前的事务再次读取改范围的记录,产生的幻行)的问题,InnoDB 和 XtraDB 存储引擎通过多版本并发控制解决幻读问题( MVCC ),可重复读时 musql 默认的事务隔离级别。
    4.可串行化( SERIALIZABLE ),最高隔离级别,强制事务串行执行,避免了幻读,给每一行枷锁,导致大量的超时和锁争用的问题。

    死锁

    1.两个事务里的 sql 的锁被对方锁定,陷入的死循环。
    2.InnoDB 目前处理死锁的方法是,将只有最少行级的排他锁(写锁)的事务进行回滚。?

    事务日志

    1.又称预写式日志,事务日志持久化之后,内存中被修改的数据在后台慢慢刷回到磁盘,修改数据要写两次磁盘。?

    多版本并发控制

    1.MVCC 通过保存数据的某个时间点快照来实现
    2.通过两个隐藏列,一个列是保存行的创建时间,一个是行的过期时间(或删除时间)
    3.MVCC 只在 REPEATABLE READ 和 READ COMMITTED 两个隔离级别下工作

    存储引擎

    1.数据库可称 schema 保存在数据目录下的一个子目录,创建表时,mysql 会在数据库子目录下的创建一个和表同名的.frm 文件来保存表的定义

    行的格式

    1.可选值 Dynamic,Fixed 或者 Compressed,Dynamic 的行长度是可变的如 varchar 和 blob ,Fixed 的行长度是固定的,如 char 和 interger

    6 条回复    2021-11-01 14:45:09 +08:00
    freelancher
        1
    freelancher  
       198 天前
    ?发的是啥。有好几个错误的理解。。。。还好学过。不然都带偏了。。。
    statumer
        2
    statumer  
       197 天前
    隔离级别这块儿可以再多研究研究
    MaoRong
        3
    MaoRong  
    OP
       196 天前
    @freelancher 呃呃呃呃,能具体指出来嘛,多谢
    @statumer 具体研究指的是
    xiaotianhu
        4
    xiaotianhu  
       196 天前
    这是把 v2 当 CSDN 来用了?
    fkdtz
        5
    fkdtz  
       196 天前
    建议打回重看
    freelancher
        6
    freelancher  
       196 天前
    但凡有认真读完资料也不会理解成这样吧。基础功还是要练一下。O 了。不多说了。
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1184 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 19:30 · PVG 03:30 · LAX 12:30 · JFK 15:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.