mysql 查詢結果建表,如何使用MySQL數據庫?
主從架構— —概念
binlog日志
MySQL的二進制日志可以說是MySQL最重要的日志了,它記錄了所有的DDL和DML(除了數據查詢語句)語句,以事件形式記錄,還包含語句所執行的消耗的時間。復制原理1. 主庫操作保留binlog日志2. 從庫的IO線程從主庫拉取binlog日志,并生成中繼日志(relay log)3. 從庫的SQL線程解析中繼日志,并在本身回放狀態檢查主要通過判斷IO線程和SQL線程是否處于Running判斷復制是否正常,判斷Seconds_Behind_Master參數代表數據同步是否延遲:mysql> show slave status\G... Slave_IO_Running: YesSlave_SQL_Running: YesSeconds_Behind_Master: 0...主從架構— —衍生各種擴展的主從架構1. 一主多從2. 雙主復制3. 級聯復制4. 等等讀寫分離大部分場景下,讀的頻率比寫的頻率會高很多。所以可以通過擴展多個SLAVE節點提高整體的使用性能。數據備份傳統的備份包括三種方式:1. lvm snapshot(LVM快照備份)2. mysqldump3. Xtarbackup那么要如何實現數據的一致性備份呢(一致性備份是所有數據/文件/磁盤 需要在同一個時間點進行備份)LVM SNAPSHOT1. 執行FTWRL(FLUSH TABLES WITH READ LOCK)1.1上全局讀鎖(lock_global_read_lock)1.2清理表緩存(close_cached_tables)1.3上全局COMMIT鎖(make_global_read_lock_block_commit)2. 執行lvcreate 創建lv快照.3. UNLOCK TABLES解鎖MYSQLDUMP1. 開啟可重復讀事務隔離2. 開啟事務3. 建立數據快照(可以理解為select * from *)4. 結束事務XTRABACKUP1. 不是整體采用備份鎖,只有特定階段。2. indodb階段不需要加鎖,ACID的C(持續性)是通過Redo log實現,通過線程增量記錄redo log實現。