• mysql-画图


    目录

    12e1089a2e52ca5007bdb677adcfac60.png

    990dc112f956bee9dd0f3e8b06316772.png

    阿里数据库产品rds

    a321d92ff96ada4762ce5d934bd1b2c6.png

    淘宝数据库架构

    601829b89caccbedf15cd341151e0540.png

    数据库下载

    8aaa8db908c599264586b01ee0c984fd.png

    Mysql3种安装方法

    c29f88b78c06fc52656d52b5b443ae85.png

    53b6fc47ed1e3447024386f88c0d380d.png

    mysql_install_db安装数据库命令脚本中有生成初始mysql数据

    也可以把mysql_install_db集合到mariadb.service服务中

    表联系类型-1对多

    2046a718818da897cfb54220a31ed71f.png

    表联系类型-多对多

    837d795f7157a8f43543591e4314cb21.png

    联系表删除外键表

    ad53e8448dd6bcb83ce2e37abbda06c8.png

    Mysql实例

    d50d8a5d098768cd6f3ea4f3d74015df.png

    Myql体系结构

    7b6908a67483c03bc0a1c363507374a2.png

    0adc6008fae8c45effb6991ba277f210.png

    语句执行流程

    b6f11a75c3c1036bb81d84878e27eca5.png

    数据库远程软件

    10027f41cbf2743906064d6a0168e550.png

    Mysql字符校对规则

    4610f0b036c4f9a829776123208acc85.png

    SELECT语句执行顺序

    d01e79ca73e0bc483307633a1250bdd5.png

    内外连接

    bcb45ab949bb39a171a3d73cb7a4d00b.png

    Msyql架构

    91c909a5beb467af8a1cea5b86733b44.png

    e963e9607fddfa20295a6da1edfa980f.png

    查询缓存优化

    8392265873ffe502ff7fbfe766ee737b.png

    索引

    3e38f77e8d3c7f5f7ef9eb948409daa2.png

    ce9f86464343cb8d577a50676412c8bb.png

    e5b1ca888bc86d7eed0c006ebee55424.png

    索引树

    362c62f321bdcf4e9e8dde8fc38d5d8b.png

    索引-possible

    86bf15784bff3cb0990c429835dba443.png

    6d2b35859fcf9d02b21b6b4c28f99318.png

    索引-主键索引+辅助索引

    012527d81f44bb374d11fa16f8b25a0f.png

    96e8bf53e2e70b0a9ae76ffe375d2e43.png

    复合索引第二例可能是无序的,所以在复合索引单独使用无作用

    存储引擎

    存储引擎-物理结构

    ea560dad5ea1bbcfe193388bbaf37fe9.png

    存储引擎-MVCC机制

    6e4cf2ea9bd7d202cca5240104866386.png

    多版本并发控制机制,

    多个用户同时修改数据不会产生影响

    MVCC

    在原有表额外增加2个隐藏字段,用来记录事务号

    createversion delete_version

    添加记录的时候会记录添加事务的版本号

    某条记录被删除,会记录删除事务的版本号

    新用户查看数据也是产生一个事务,能看到的内容只能是在他之前发生的事务

    存储引擎-blackhole

    cebbd62ac198dfd3fe0c39502801e4e4.png

    表空间迁移

    df604be8dd5f47db97e7541c0d6e78b7.png

    事务-生命周期

    d9f3beb15ffc2961c1fe274500402221.png

    事务-redo-undo恢复-断电的3种情况

    ac2a5255b34b066f32629626b8f8ba05.png

    比对的是磁盘中ibd文件中lsn,T0和redo log中

    df8167de0f1ba929bd7f4cb3e67ab5c7.png

    断电情况3

    LSN号不一致触发前滚,构造脏页

    前滚后,CSR日志发现日志中commit状态已提交,不需要回滚了

    事务-redo-undo-原理

    ddd782d3cb47970c314e721a599b46d3.png

    9d34e40a6789ccf4bb39ebc79b6c908a.png

    事务-隔离界别-脏读

    Ru模式下,未提交别的用户就能查到最新修改数据

    c11c04a7a8eb042f7739c4fb9feb655f.png

    事务-隔离级别-不可重复读

    左边执行完提交后,就可以看到最新数据,rc(读已提交)模式下

    fed2c2478e2019d7ff7f2b997ea37367.png

    事务-隔离级别-幻读

    RC模式下幻读

    0198cf224ec7afaac2e6a170c4dace7a.png

    3770e4cf5336fe43cf02fc69a80a7652.png

    事务-多会话commit区别

    media/image43.png

    事务-死锁

    6eb024c686c986dfbb6f23c4085c30de.png

    2个事务交差重复修改,都发生等待,出现死锁

    事务-行级锁等待

    5fd233d33b104b0aafe18aeec689d512.png

    Innodb参数-innodb_flush_log_at_trx_commit=1

    控制的是redo日志

    Redo日志刷写磁盘3种策略

    79931684c75241c00befb896984eefe6.png

    等于0的时候,每秒刷写已经交和未提交到os
    buffer(文件系统缓存),断电可能会损失1秒的---可能会用到

    等于1的时候,当commit后立即刷写到os buffer,再立即刷写到磁盘-----安全,常用

    等于2的时候, 当commit后立即刷写到os buffer,每秒刷写到磁盘----一般用不到

    为什么刷写到os buffer,因为由os buffer刷写到磁盘效率更高.

    Innodb参数-innodb_flush_method

    控制的是redo buffer(重做日志) 和buffer pool(存储的是数据)

    要么性能,要么安全

    Fsync 性能

    6c2afb20be90431a54dcd583dfa8225e.png

    innodb_flush_method =O_direct 默认 建议模式(安全)

    8a46cd593427f1ff415e2c96dcf2bb66.png

    O_dsync

    ca7d266bd28169a4ef5c483c870be325.png

    5dd238c6c6f493d53e08f10cdee52660.png

    0126558aaa9d8dda991e513ed6861ce3.png

    Buffer pool

    redo buffer

    lb_logfile(redo日志文件)

    innodb_max_dirty_pages=75(脏页占用bufferpool超过75则刷写到磁盘)

    如果脏页丢失可以根据redo恢复

    日志-二进制日志恢复

    4616388e1c96467e2cca6fd6377b6bab.png

    备份恢复

    备份-备份恢复步骤

    4899f8787c5ef6ed53f590844b08b6c8.png

    备份-差异备份

    145510af24aae98063e3d5f1a5dc77c0.png

    备份恢复-数据库删表恢复

    前提log_bin=on(数据库路径开启过)

    加一个read锁,让用户不能修改数据了.还能访问

    Flsuh tables with read lock;

    开始做恢复准备

    Show master logs; 查看日志.确认删表的日志位置

    查看完全备份时,--master-data=1二进制日志文件bin.000004及位置,=245(则1-3的bin日志可以删掉不管)

    Flush logs; 生成新的日志00005

    删除表动作发生在日志00004.所以导出00004日志

    Mysqlbinlog --start-position=245 /data/binlog/mysql-bin.00004>/backup/bin.sql

    cat /backup/bin.sql,定位一下.找到删表的命令的位置,删除这行命令

    关掉数据库网络,防止外界访问(或者删了数据库,重开服务)

    开始恢复数据库

    e7d8a296a45e355f9d9415c8539a4923.png

    备份恢复-单表恢复

    0e9a22d6146eca6724c99c205b88619e.png

    Mysqldump-迁移数据库

    883bd1aa2983cabdc2aac73a5810b4c2.png

    备份恢复-xtrabackup

    78c759471ac74fe4bab423491eadb018.png

    Xtrabakcup-备份流程

    a9c2d443beed88b7d8964336968f5665.png

    Xtrabackup-增量备份的lsn号

    全备和增量备lsn号的差为9

    5faccc59dd7e5b92124f3780a9b17bb5.png

    Xtrabackup-redo only

    90489dbfe2a96414e7cb68d2986ceb33.png

    复制

    复制-数据库主从复制

    a4254b131a1e32b3ccdf79818c2f3dd3.png

    主从复制原理

    1004eb791c4cc59d58acfb48e337e3cb.png

    c9c3f3e0d696f3830393bf9f88ec1ff4.png

    10464c68e626354bcc7f597aac2d6236.png

    8da79b673204aa393e03ee94271ea1c6.png

    551c1c050ac996968eba51c175adee95.png

    3365b04aa9bce4d9f21f4b47679e1a38.png

    256fd9e8fc0c39800736e7b33e9eed4b.png

    8953f6cfc43ed3c24dd547312b514313.png

    f93e648f29cb4259223ad1384a984bb1.png

    10ed80e718ad5a9c23c90e0869346e81.png

    复制-主从异步

    491c54c1ab35b0a39460414e6fa268a8.png

    复制-mysql复制模型

    1c24d8867628da58a4b365dc40600d9b.png

    一主多从级联复制

    f741faf6ca92fc532f0e733e83a01ce4.png

    主主复制

    e91e410a44be1eebc26bf09ea715f3ba.png

    半同步复制

    5659c3f4e9e2cf46d96495afe454c1e5.png

    c8abcf63d100a69f91a8c824d56d87e4.png

    Mha

    MHA

    5b75f3c45ff9a070cbd498e6e48261f3.png

    f0939b4f5c7a037fd8400e8bbac63bb8.png

    Mha-原理

    abfa71769047909f07b894de623f1577.png

    MHA-多个主从

    08aa31efbb024efc291cb0db7b8e3ab3.png

    MHA-邮箱配置

    57a6fe2e68666773aa342a94d0618c8d.png

    Keepalived实现虚拟ip飘逸

    fe854802b44475ee8ba1e5a436b84280.png

    Galera cluster工作过程

    c216f3bfab1e2f6e49e98715209c7124.png

    Atlas

    Atlas-读写分离

    e662a6daaf072ac33bfaee9482919dd4.png

    Atlas-2个端口

    5db3cca5571100dab3a96f997e84f0aa.png

    分布式-架构图

    1aa26cd79b38810b66c446771cf46829.png

    9bdb53f35b3352fea6a4fb6782b94a50.png

    Mycat

    Mycat-分布式存储

    fc261811566d964a4ce1736e0aeca2d9.png

    Mycat-配置

    23e542d1a5814205d7679f249a745ee2.png

    Mycat-range分片

    23bb1ff3a989d01f9a876b3d5b4fcded.png

    7dd20372e84b2ef6129846bb6d99a0d3.png

    d45b58b0e97bd18647dabb9a208d165c.png

    Mycat-小结

    3dec7209af159fd71f919374efa2a4ca.png

    微信:jinmuqq222
  • 相关阅读:
    asp.net ajax传递Json给aspx.cs后台 webmethod方法传递json
    新手 Redis 配置笔记(windows),附下载地址
    在 LINQ to Entities 查询中无法构造实体或复杂类型
    WebApi 4.0 默认方式不支持HttpGet 请求
    jQuery .Ajax Error Handling Function
    My97DatePicker 与 某个CSS冲突 ,导致无法显示
    基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系
    使用Autofac部署IIS6.0时未能加载文件或程序集“System.Core, Version=2.0.5.0...“
    Could not load file or assembly 'System.Core, Version=2.0.5.0 和autofac冲突的问题
    线程间操作无效: 从不是创建控件“textBox2”的线程访问它
  • 原文地址:https://www.cnblogs.com/jinmuqq222/p/13579515.html
Copyright © 2020-2023  润新知