目录

阿里数据库产品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-小结

mysql-画图的更多相关文章

  1. 【PowereDesigner】使用方法|mysql画图使用|不在跟新

    自己画E-R图时, 运行:Power Designer ..1 ..2 ..3 可以先放两个空的实体,然后,分别修改属性(鼠标右键,最后一项Properties),名称为:学生.课程. ..4 创建一 ...

  2. [mysql]tpcc相关及画图

    参考:http://blog.chinaunix.net/uid-26896862-id-3563600.html 参考:http://blog.chinaunix.net/uid-25266990- ...

  3. 十种MYSQL显错注入原理讲解(二)

    上一篇讲过,三种MYSQL显错注入原理.下面我继续讲解. 1.geometrycollection() and geometrycollection((select * from(select * f ...

  4. Mysql学习笔记(一)

    技术的王国太过迷人,我刚从事IT就被各种技术所引诱迷惑,什么都想学.我还算言而有信的那一类人,还好有一丁点毅力,于是各种东西都沾染了一点.但是这种遍地开花的情况实在和我的智商不匹配.我没有那么多的精力 ...

  5. 【转】使用Sublime + PlantUML高效地画图

    project: blog status: publish target: how-to-use-sublime-and-plant-uml-draw-diagram.md date: 2015-12 ...

  6. 测试Kettle在增量更新的时候是否支持级联——不支持(基于mysql)

    由于LZ很像整理一下如何使用Kettle对一张表进行增量更新的时候, 同时实现对数据库中的其他表也可以实现相关的更新操作. 第一种方法想使用触发器,即在相应的hop之间添加SQL脚本step然后在st ...

  7. 如何将MongoDB数据库的数据迁移到MySQL数据库中

    FAQ v2.0终于上线了,断断续续忙了有2个多月.这个项目是我实践的第一个全栈的项目,从需求(后期有产品经理介入)到架构,再到设计(有征询设计师的意见).构建(前端.后台.数据库.服务器部署),也是 ...

  8. 基于MySQL + Node.js + Leaflet的离线地图展示,支持百度、谷歌、高德、腾讯地图

    1. 基本说明 本项目实现了离线展示百度.谷歌.高德.腾讯地图.主要功能如下: 实现了地图瓦片图下载.存储.目前支持存储至MySQL Node.js服务调用MySQL中的瓦片图 Leaflet展示地图 ...

  9. 【原创】新说Mysql事务隔离级别

    引言 大家在面试中一定碰到过 说说事务的隔离级别吧? 老实说,事务隔离级别这个问题,无论是校招还是社招,面试官都爱问!然而目前网上很多文章,说句实在话啊,我看了后我都怀疑作者弄懂没!因为他们对可重复读 ...

  10. 深入MySQL复制(三):半同步复制

    1.半同步复制 半同步复制官方手册:https://dev.mysql.com/doc/refman/5.7/en/replication-semisync.html 默认情况下,MySQL的复制是异 ...

随机推荐

  1. 【Linux】nginx详细说明

    Nginx的配置文件nginx.conf配置详解如下: user nginx nginx ; Nginx用户及组:用户 组.window下不指定 worker_processes 8; 工作进程:数目 ...

  2. C语言流程图画法(C语言学习笔记)

    常用符号及其含义 图片来自百度文库 https://wenku.baidu.com/view/beb410dea216147916112853.html 常用结构 N-S图

  3. Linux服务器上迁移项目路径,修改nginx配置,迁移及备份MongoDB数据库流程 (超详细)!!!

    缘由:客户服务器项目路径不是很合理,导致Jenkins自动部署时还需要添加路径后再更新部署,所以需要把项目路径统一和规范化. 迁移项目路径,保证路径合规,同时做好备份和迁移.迁移后先安装好依赖. 项目 ...

  4. innodb引擎的4大特性

    一:插入缓冲 二:二次写 三:自适应哈希 四:预读 1.插入缓冲(insert buffer)插入缓冲(Insert Buffer/Change Buffer):提升插入性能,change buffe ...

  5. 你真的了解Android系统启动流程吗?Android高级工程师必看系列,已开源

    前言 从毕业到现在面试也就那么几家公司,单前几次都比较顺利,在面到第三家时都给到了我offer!前面两次找工作,没考虑到以后需要什么,自己的对未来的规划是什么,只要有份工作,工资符合自己的要求就行!所 ...

  6. GRASP职责分配模式

    https://mp.weixin.qq.com/s/IaxAnWfVqe3mM0bHFVV5Gg 软件开发必修课:你该知道的GRASP职责分配模式 原创 悟真 阿里技术 今天 收录于话题 #设计模式 ...

  7. dotnet .NET

    小结: 1.一个.NET应用是一个使用.NET Framework类库来编写,并运行于公共语言运行时Common Language Runtime之上的应用程序.       Microsoft .N ...

  8. XV6学习(8)中断和设备驱动

    驱动是操作系统中用于管理特定设备的代码:驱动控制设备硬件,通知硬件执行操作,处理中断,与等待该设备IO的进程进行交互. 当设备需要与操作系统进行交互时,就会产生中断(陷阱的一种),之后内核的陷阱处理代 ...

  9. 【算法】深度优先搜索(dfs)

    突然发现机房里有很多人不会暴搜(dfs),所以写一篇他们能听得懂的博客(大概?) PS:万能 yuechi ---- 大法师怎么能不会呢?! 若有错误,请 dalao 指出. 前置 我知道即使很多人都 ...

  10. Java三种IO模型和LinuxIO五种IO模型

    Java: https://github.com/Snailclimb/JavaGuide/blob/master/docs/java/BIO-NIO-AIO.md https://github.co ...