zoukankan      html  css  js  c++  java
  • Mysql-InnoDB

    存储引擎

    mysql中的文件系统

    查询引擎

    show engines;
    

    InnoDB

    核心特点:

    MVCC 多版本并发控制。

    Clustered index 聚簇索引

    多缓存区池

    事务

    行级锁

    外键

    更多复制特性

    支持热备

    自动故障恢复

    change buffer

    自适应hash索引,AHI

    整理碎片

    alter table x engine=innodb;
    

    事务

    begin;
    DML1
    DML2
    commit/rollback;
    

    InnoDB保证ACID

    1.重做日志

    2.数据页

    Innodb_flush_log_at_trx_commit=0/1/2

    1:每次提交事务,写入磁盘。

    0:每秒写日志到os cache,再到磁盘,异常宕机时,会丢失1秒事务。

    2:每次事务提交,都立即刷新redo buffer到os cache,在每秒fsync()写入磁盘,异常宕机时,会丢失1秒事务

    隔离级别和锁机制

    • transaction_isolation
      • RU (READ-UNCOMMITTED):未提交读
        • 脏读,不可重复读,幻读
      • RC (READ-COMMITTED):已提交读
        • 不可重复读,幻读
      • RR(REPEATABLE-READ):可重复读
        • 幻读
      • SR(SERIALIZABLE):可串行读
        • 没问题,不利于并发

    读指的是存储引擎对页的读取。

    • 脏读
    • 不可重复读
    • 幻读

    锁是属于资源的,

    事务需要资源的时候,需要申请该资源的锁。

    • 资源:

      • 内存 :mutex latch pin
      • IO对象锁 :
        • MDL (元数据锁) ,修改元数据的时候 DDL,备份。
        • Table_lock (表锁),DDL,备份(FTWRL全局表锁),手动锁表
        • record(row) lock , 行锁,锁定聚簇索引。
        • GAP , 间隙锁,RR级别,普通辅助索引间隙锁。
        • Next-lock 下一键锁,GAP+Recordlock,普通索引范围锁
    • 对象锁粒度:

    • 功能分类:

      • IS :意向共享锁,表级别。
      • S :共享锁,行级别
      • IX :意向排它锁,表级别。
      • X :排它锁,写锁,行级别
  • 相关阅读:
    3.18日
    线程的面试题
    关于instanceof测试遇到的问题
    spring
    自动登录代码
    Filter
    多态
    基于HTML,css,jQuery,JavaScript,MySQL搭建博客系统
    基于bootstrap+MySQL搭建动态网站
    基于bootstrap_网站汇总页面
  • 原文地址:https://www.cnblogs.com/JinweiChang/p/14378280.html
Copyright © 2011-2022 走看看