zoukankan      html  css  js  c++  java
  • mysql数据结构及mvcc

    索引

    帮助mysql高效获取数据排好序数据结构

    B-tree

    B+-tree mysql主键索引与单列索引


    b+-tree增加优化:1.叶子数据节点有指针,范围查询时可以更快。2.数据都放置在最下层叶子节点,上层节点占用空间小,可以有更多分叉,树高度会小,查询更快

    联合索引


    最左匹配原则

    MVCC

    在使用READ COMMITTDREPEATABLE READ这两种隔离级别的事务在执行普通的select操作时访问记录的版本链的过程。可以让不同事务的读写、写读操作并发执行,从而提升性能。这两个隔离级别很大不同就是生产READVIEW的实际不同。READ COMMITTD在每次进行普通select操作前会生产readview,而REPEATABLE READ只有在第一次仅限普通select操作前生成readview,之后的查询操作都重复使用第一次生成的readview。

    版本链

    readview

    存储事务id

    mysql 索引下推

    mysql锁

    读锁,写锁
    READ COMMITTD隔离事务中,只会对写的固定行加锁,其他的行则不会阻塞。
    REPEATABLE READ 隔离事务中,会加间隙锁,会对有影响的行加锁。

    自己mysql优化过程

    配置msyql开启慢查询sql;
    拿到sql后使用explain检查sql查看分析结果
    id:选择标识符
    select_type:表示查询的类型。
    table:输出结果集的表
    partitions:匹配的分区
    type:表示表的连接类型
    possible_keys:表示查询时,可能使用的索引
    key:表示实际使用的索引
    key_len:索引字段的长度----长度越短越好
    ref:列与索引的比较
    rows:扫描出的行数(估算的行数)
    filtered:按表条件过滤的行百分比
    Extra:执行情况的描述和说明

  • 相关阅读:
    iOS iOS与html进行交互
    2. SwiftUI学习之_padding1()
    基础知识 1. 设计模式是什么?你知道哪些设计模式,请简要叙述?
    swift 5.0富文本
    ios 本地化
    ios报错:nw_protocol_get_quic_image_block_invoke dlopen libquic failed
    IOS开发没有开发者账号也可以进行测试
    swift项目中新的字体如何加入
    TestFlight用法 包教包会(iOS APP官方测试工具)
    IOS FMDB的使用
  • 原文地址:https://www.cnblogs.com/lantuanqing/p/14529243.html
Copyright © 2011-2022 走看看