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

  • 相关阅读:
    c中static的作用
    数据分析人士必看的10个中文博客
    使用cat命令和EOF标识输出多行文件
    linux 查看系统信息命令(比较全)
    ORACLE 使用LEADING, USE_NL, ROWNUM调优
    Oracle Hint(提示)和INDEX(索引)的一些忠告
    Linux操作系统中巧用CD和Pushd切换目录
    索引失效的一些原因
    .NET使用一般处理程序生成验证码
    上传图片到指定文件目录,没有则创建目录
  • 原文地址:https://www.cnblogs.com/lantuanqing/p/14529243.html
Copyright © 2020-2023  润新知