目录

阿里数据库产品rds

淘宝数据库架构

数据库下载

Mysql3种安装方法

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

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

表联系类型-1对多

表联系类型-多对多

联系表删除外键表

Mysql实例

Myql体系结构

语句执行流程

数据库远程软件

Mysql字符校对规则

SELECT语句执行顺序

内外连接

Msyql架构

查询缓存优化

索引

索引树

索引-possible

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

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

存储引擎

存储引擎-物理结构

存储引擎-MVCC机制

多版本并发控制机制,

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

MVCC

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

createversion delete_version

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

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

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

存储引擎-blackhole

表空间迁移

事务-生命周期

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

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

断电情况3

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

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

事务-redo-undo-原理

事务-隔离界别-脏读

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

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

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

事务-隔离级别-幻读

RC模式下幻读

事务-多会话commit区别

media/image43.png

事务-死锁

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

事务-行级锁等待

Innodb参数-innodb_flush_log_at_trx_commit=1

控制的是redo日志

Redo日志刷写磁盘3种策略

等于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 性能

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

O_dsync

Buffer pool

redo buffer

lb_logfile(redo日志文件)

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

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

日志-二进制日志恢复

备份恢复

备份-备份恢复步骤

备份-差异备份

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

前提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,定位一下.找到删表的命令的位置,删除这行命令

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

开始恢复数据库

备份恢复-单表恢复

Mysqldump-迁移数据库

备份恢复-xtrabackup

Xtrabakcup-备份流程

Xtrabackup-增量备份的lsn号

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

Xtrabackup-redo only

复制

复制-数据库主从复制

主从复制原理

复制-主从异步

复制-mysql复制模型

一主多从级联复制

主主复制

半同步复制

Mha

MHA

Mha-原理

MHA-多个主从

MHA-邮箱配置

Keepalived实现虚拟ip飘逸

Galera cluster工作过程

Atlas

Atlas-读写分离

Atlas-2个端口

分布式-架构图

Mycat

Mycat-分布式存储

Mycat-配置

Mycat-range分片

Mycat-小结

最新文章

  1. JavaScript对象属性(二)
  2. Virtualbox - 共享文件夹
  3. UML 类图的关系
  4. debian网易163更新服务器 源
  5. vs2010中将复制过来的文件或文件夹显示到解决方案管理
  6. Hibernate中自带ID的generator的含义
  7. Struts2框架的基本使用(二)
  8. django反向解析传参
  9. VC++ 实现程序重启
  10. FastReport.Net
  11. Nginx 集群 反向代理多个服务器
  12. ansible和python的zabbix_api批量添加rsync服务的监控
  13. Git操作自动触发企业微信机器人webhook
  14. C#中 Excel和其他文件类型的Content-Type/mime-type
  15. Tsung 超详细的的tsung性能测试资料
  16. npm脚本探析
  17. No module named scrapy 成功安装scrapy,却无法import的解决方法
  18. mysql之零碎知识
  19. VS2015新建项目时,左侧面板空白的解决方法
  20. 串口流控制详解(CTS/RTS,DTR/DSR)

热门文章

  1. LeetCode897. 递增顺序查找树
  2. 攻防世界—pwn—level0
  3. centos7安装vsftpd最大的坑
  4. VMware下安装Ubantu 18.04
  5. Python爬虫学习笔记(一)
  6. Android事件分发机制四:学了事件分发有什么用?
  7. Netty编解码器(理论部分)
  8. ChannelNets: 省力又讨好的channel-wise卷积,在channel维度进行卷积滑动 | NeurIPS 2018
  9. Git恢复之前版本的两种方法reset、revert
  10. 【转载】【Python模块】datetime