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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM