美文网首页
Mysql 基础知识2

Mysql 基础知识2

作者: Minnakey | 来源:发表于2020-05-18 10:09 被阅读0次

    数据查询流程

        连接池
        缓存
        分析器
        优化器
        执行器
    

    日志文件类型

        /var/lib/mysql
        error,warning log
        Binlog :ddl 提交后记录,主从备份,数据备份,数据恢复
        general log
        slow query log
        redo log:commit log
        undo log:rollback log
        relay log:主从
    

    存储引擎的存储和提取

    InnoDB
    文件:.frm .idb .ibdata
    索引和数据存储在一起,支持高并发、事务
    MyIsam
    文件:.frm .myd .myl
    索引和数据不在一起
    memory:内存

    索引

    mysql 集群

    主从同步:主-》binlog+独立ID 从-》唯一ID,专门复制主服务器的数据
    前提:1. 主记录binlog位置 2. 已有数据快照mysqldump导出,复制数据文件
    从 -》zhuIP+权限+binlog文件名和位置
    主从复制:延时-SQL Thread, IO Thread,网络延时,IO耗时
    主从读写分离: 主 读写 从 数据安全备份
    分表分库:垂直切分-》 按照业务模块切分到不同数据库
    水平切分 -》 大表按行切分

        全局锁:database锁
        表级锁:table锁,共享读,独占写。 加锁块,开销小
        行级锁:Record Locks, Gap Locks,  next-key locks
        元数据锁:MDL
        共享锁:读锁
        排它锁:update,delete,insert
        悲观锁:表级锁,元数据锁,意向锁
        乐观锁:程序实现,version+timezone
        死锁:间隙锁死锁,记录锁死锁。
                避免交叉更新,保持事务的轻量,尽量使用主键,避免子查询,尽快提交事务,
    

    性能分析和性能优化

        表优化:使用中间表,大表拆表
        索引优化:where 条件,组合索引(粒度从高到低),使用覆盖索引
        limit 优化:count(*),count(1),count(cloume)
        join 优化:关联字段建索引,字段类型一样
        where 优化:使用 in, not exists, exists
    

    事务与事务分析

    DDl,DML,DCL
    Dml 数据操纵语言,如select、update、delete,insert
    Ddl 数据定义语言,如create table 、drop table 等等
    Dcl 数据控制语言, 如 commit、 rollback、grant、 invoke等
    A: all/no
    C: status 一致
    I: 锁+MVCC 用于数据库提供并发控制技术
    D: 成功后写入磁盘

    事务

    Begin/start Transaction
    commit;
    Rollback

    行锁分析

    1. 主键+RC:X锁
    2. 唯一索引+RC:X锁
    3. 唯一非索引+RC:X锁
    4. 无索引+RC: 全表锁
    5. 主键+RR: X锁
    6. 唯一索引+RR:X锁
    7. 唯一非索引+RR: X锁+GAP 两条记录之间的缝隙
    8. 无索引+RR : 全表锁+全表GAP

    CheckPoint:

    1. 完全检查点:sharp
    1. 模糊检查点:master thread、flush lru list、async/sync、dirty page too much

    磁盘文件

    系统表空间:data dictionary, Double write,
    用户表空间:数据+索引+undo
    redo 日志文件和归档文件

    B+ 树 叶子结点存储数据
    B 树 主+叶子结点

    相关文章

      网友评论

          本文标题:Mysql 基础知识2

          本文链接:https://www.haomeiwen.com/subject/xemlihtx.html