原创 數據庫索引B+樹

B樹 二叉搜索樹: 1.所有非葉子節點至多擁有兩個兒子(left和right) 2.所有節點存儲一個關鍵字 3.非葉子節點的左指針指向小於其關鍵字的子樹,右指針指向大於其關鍵字的子樹 如: B樹的搜索:從根節點開始,如果查詢的關鍵

原创 mysql-ICP

ICP(index condition pushdown)的作用: ICP can reduce the number of times the storage engine must access the base table and

原创 mysql複製

基於事務的複製 group commit:binlog中加入了一個隊列 從庫的配置要比主庫的高才能追的上原因:(tokuDB replication read free), 減少從庫在sql_thread執行的時間,傳統的執行時把SQL

原创 mysql索引

索引基礎理論知識 二分查找法:在有序數組中查找某一特定元素的搜索算法  優點:比較次數少,查找速度快,平均性能好  缺點:待查表爲有序表,插入刪除困難。所以適用於不常變動而查找頻繁的有序列表 平衡樹,平衡二叉樹 特點:爲一棵空樹和左右兩

原创 mysql-insert鎖機制

注:不同的參數設置,不同的mysql版本,不同的事務隔離級別都對加鎖過程有影響1.通過show variables like 'innodb_locks_unsafe_for_binlog'可以查看gap鎖是否開啓該參數默認值爲0,即啓用

原创 mysql server-id作用和binlog文件

server-id的作用: 1.mysql的同步數據中是包含server-id的,用於標識該語句最初從哪個server寫入,所以server-id一定要有 2.每一個同步中的slave在master上都有對應的一個master線程,該線

原创 mysql5.7關閉NUMA方法

非一致存儲訪問結構 (NUMA : Non-Uniform Memory Access) 也是最新的內存管理技術。它和對稱多處理器結構 (SMP : Symmetric Multi-Processor) 是對應的。 MySQL單機單實

原创 mysql-innodb行記錄格式

可以通過show table status like 'table_name'命令查看當前表使用的行格式(row_format字段) row_format redundant,最早的行格式 首部是字段長度偏移列表,按照列的順序逆序放

原创 mysql主從複製中maste、slave中的主要配置參數

master配置參數: log-bin binlog文件名前綴,可以是全路徑或相對路徑 log-bin=mybinlog log-bin=/data/mysql/test-3306/mybinlog 不可在線動態修改 server-

原创 理解innodb鎖(record gap next-key lock)

Record lock 單條索引記錄上加鎖,record lock鎖住的永遠是索引,而非記錄本身,即使該表上沒有任何索引,那麼innodb會在後臺創建一個隱藏的聚集主鍵索引,那麼鎖住的就是這個隱藏的聚集主鍵索引。所以說當一條sql沒有走

原创 mysql-innodb數據頁結構

說明: File Header 記錄頁的一些頭信息,共佔用38字節,組成部分如圖:innodb存儲引擎中頁的類型:Page Header:記錄數據頁的狀態信息,共佔56個字節,組成部分如圖: infimum和supermum reco

原创 mysql -innodb存儲引擎體系結構

說明:  recover thread:rollback clean thread,recv write thread kernel thread:dict stats thread ,buf dump thread ,master t

原创 mysql-innodb關鍵特性

一、insert buffer 1.插入緩衝(insert buffer):數據頁一樣,是物理頁的一個組成部分,其數據結構是一棵B+樹,存放在ibdata1(共享表空間)中。 注:並不是所有的主鍵插入都是順序的,若主鍵是UUID,則插入

原创 share nothing和share disk

share nothing架構下,每個結點都有自己的CPU、內存、存儲。跨結點的數據訪問通過結點之間的網絡通訊來完成。 share disk架構下,每個結點有自己的CPU和內存,但是共享同一個存儲。也就是說,存儲只有一份,放在單獨的分

原创 mysql-innodb存儲引擎概述

一、innodb體系架構 1、後臺線程 (1)master thread 負責將緩衝池中的數據異步刷新到磁盤,保證數據的一致性(包括髒頁的刷新,合併插入緩衝,undo頁回收等) (2)IO thread 負責將使用了AIO(async