MySQL系列(一) MySQL体系结构概述
生活随笔
收集整理的這篇文章主要介紹了
MySQL系列(一) MySQL体系结构概述
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
-
1 MySQL 的體系結構
- 連接池組件
- 管理服務和工具組件
- SQL接口組件
- 查詢分析器組件
- 優化器組件
- 緩沖組件
- 插件式存儲引擎(體系結構的核心)
- 物理文件
-
2 InnoDB 概述
- InnoDB存儲引擎支持事務,設計目標主要面向在線事務處理OLTP的應用,其特點是行鎖設計,支持外鍵,并支持類似于Oracle的非鎖定讀,即默認讀取操作不會產生鎖,5.58后成為默認引擎
- InnoDB使用MVCC(多版本并發)控制來獲得高并發性,并且實現了SQL標準的4種隔離級別
- InnoDB還提供了插入緩沖,二次寫,自適應哈希索引,預讀等實用功能
- InnoDB采用聚集索引的方式,每張表的存儲都是按照主鍵的順序進行存放
- 最有效利用以及使用內存的cpu 的存儲引擎,好性能,高擴展,高可用
-
3 其他存儲引擎概述
- MyISAM :面向 OLAP,不支持事務
- MyISAM不支持事務,表鎖設計,支持全文索引,主要面向一些OLAP數據庫應用。
- 緩沖池只緩存索引文件,而不緩沖數據。
- DNB: 集群存儲引擎
- 集群存儲引擎
- 數據全部放在內存中(5.1后可以在磁盤上存非索引數據),主鍵查找速度極快并且可以通過添加NDB數據存儲節點可以線形提高數據庫性能,是高性能高可用的集群系統。
- 不過NDB的連接操作是在MySQL數據庫層完成的,如果解決了這個問題,NDB的的市場是非常巨大的。
- Memory: 數據存放內存
- 之前稱之為HEAP引擎,將數據存放在內存中,適合存儲臨時數據的臨時表,以及數據倉庫中的維度表
- 使用哈希索引,而不是B+樹
- 并發性較差,存儲變長字段是按照定長處理的,比較浪費內存
- MyISAM :面向 OLAP,不支持事務
-
4 InnoDB 體系結構
- 多個內存塊組成一個內存池,主要功能:
- 緩存磁盤上的數據
- 重做日志緩沖
- 維護所有進程/線程需要訪問的內部數據結構
- 多線程模型
- Master Thread:核心線程,主要負責將緩存池中數據異步刷新到磁盤
- IO Thread: 處理IO請求,負責這些IO請求的毀掉函數處理
- Purge Thread: 回收已經使用并分配的undo(重做日志)頁
- Page Cleaner Thread: 處理臟頁的刷新操作。
- 多個內存塊組成一個內存池,主要功能:
轉載于:https://www.cnblogs.com/wang-kai-1994/p/10810364.html
總結
以上是生活随笔為你收集整理的MySQL系列(一) MySQL体系结构概述的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 场景文字检测——CTPN模型介绍及代码实
- 下一篇: linux cmake编译源码,linu