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:执行情况的描述和说明

  • 相关阅读:
    Win10开启自带虚拟机
    C# NPOI Word 内容读写
    纯自绘实现的winform下卡片列表
    一个宽带问题
    windows两个命令
    Windows IP 安全策略
    vue自学入门-9 @click后直接跟alert报错
    企业微信创建自建应用-2(手机端)
    企业微信创建自建应用-1(管理端)
    Ngnix实践
  • 原文地址:https://www.cnblogs.com/lantuanqing/p/14529243.html
Copyright © 2011-2022 走看看