• mysql基础整理


    概述

    mysql基础知识整理

    正文

    undo log:数据库事务开始之前,回将要修改的记录放到undo日志你,当事务回滚或数据库崩溃,可以利用Undo日志,撤销未提交事务对数据库产生的影响

    undo log:用于实现多版本并发控制(mvcc)

    bin log: 二进制日志,记录索引数据库表结构变更即数据修改的二进制日志,

    binlog的两个重要实用场景,
    主从复制:再主库中开启Binlog功能,这个主库就可以吧Binlog传递从库,从库
    拿到Binlog后实现数据回复达到主从数据一致

    聚簇索引:B+树的叶子节点存放主键索引和行记录就属于聚簇索引,如果索引值和行记录分开存放就属于非聚簇索引

    聚簇索引是一种数据存储方式,B+树的叶子节点就是行记录和主键值紧凑地存储在一起。这也意味着InnoDB就是数据表本身,按主键顺序存放了整张表的数据,占用的空间就是整个表数据量的大小。在InnoDB中,通常主键索引就是聚簇索引

    回表:通过辅助索引无法直接定位行记录,通常情况下,需要扫描两遍索引树,先通过辅助索引定位主键值,然后再通过聚簇索引定位行记录,这叫做回表查询,性能比一遍索引树低

    覆盖索引:在一棵索引树上就能获取SQL所需的索引列数据,无需回表,就叫做索引覆盖

    事务四大特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)

    并发事务问题:脏读、不可重复读、幻读(用户读取某以范围的数据,另一个事务在该范围类又写入了新行,当用户在读取该范围的数据时回发现又新的幻影行)

    事务隔离级别:读未提交、读已提交、可重复读、串行化

    MVCC目前只在读已提交、可重复读,两种隔离级别下工作

    S锁:共享锁,针对同一份数据,多个读操作可以同时进行而不会相互影响
    X锁:排他锁,当前写操作没有完成前,他会阻断其他邪说和读锁

    IS锁、IX锁:意向读锁、意向写锁,属于表级锁,S、X主要针对行级锁,在对表记录添加S或X锁前,会先对表添加IS或IX锁

    InnoDB行锁是通过对索引页上的记录加锁实现

    CAP理论
    Consistence:一致性,当一个系统在数据一致的状态下执行更新操作后,应该保证系统的数据仍然处于一致的状态

    Availability:可用性,指系统提供的服务必须处于一直可用的状态

    Partition:分区容错性,分布式系统在遇到网络分区故障时,仍然能够对外提供满足一致性和可用性的服务,除非整个网络环境都发生了故障

    BASE理论

    指基本可用(Basically Available)、软状态(Soft State)、最终一致性(Eventual Consistency)。它的核心思想是及时无法做到强一致性,但可用采用最终一致性

    BA:指基本业务可用性,支持分区失败
    S:指柔性状态,页就是允许短时间内不同步
    E:表示最终一致性,数据最终是一直的,但是实时是不一致的

    原子性和持久性必须从根本上保障,为了可用性、性能和服务降级的需要,只有降低一致性和隔离性的要求。BASE解决了CAP理论中没有考虑到的网络延迟问题,在BASE中用软状态和最终一致,保证了延后的一致性

  • 相关阅读:
    react-context旧版API
    JavaScript相关面试题4
    python数据结构补充——树
    SpringBoot的测试
    python(10)
    Python语言学习:Python语言学习之文件读取&写入/操作系统(OS模块详解)的简介、案例应用之详细攻略
    vue js 实现页面在浏览器全屏切换
    Titus网关中的缓存一致性机制
    从零实现深度学习框架——Transformer从菜鸟到高手(一)
    Huggingface Transformers各类库介绍(Tokenizer、Pipeline)
  • 原文地址:https://blog.csdn.net/weixin_40598838/article/details/125413718