日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

MySQL技术内幕读书笔记(一)——Mysql体系结构和存储引擎

發布時間:2024/4/17 数据库 64 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL技术内幕读书笔记(一)——Mysql体系结构和存储引擎 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

  • MySQL體系結構和存儲引擎
    • 定義數據庫和實例
    • MYSQL體系結構
    • MYSQL存儲引擎

MySQL體系結構和存儲引擎

定義數據庫和實例

  • 數據庫:物理操作系統文件或者其他形式文件類型的結合。在MYSQL數據庫中,數據庫文件可以是frm、MYD、MYI、ibd結尾的文件。當使用NDB引擎時,數據庫的文件可能不是操作系統上的文件,而是存放在內存之中的文件,但是定義仍然不變。
  • 實例:MYSQL數據庫由后臺線程以及一個共享內存區組成。共享內存可以被運行的后臺線程所共享。需要牢記的是,數據庫實例才是真正用于操作數據庫文件的。

? MYSQL被設計為一個單進程多線程架構的數據庫。

# 可以查看當MYSQL數據庫實例啟動時,會在哪些位置查找配置文件。 mysql --help | grep my.cnf

? 在配置文件中有一個參數是datadir,改參數指定了數據庫所在的路徑。在LINUX操作系統下默認是/user/local/mysql/data,這個默認路徑只是一個鏈接,實際指向/opt/mysql_data。所以用戶必須保證/opt/mysql_data的用戶和權限

MYSQL體系結構

? MYSQL由一下幾部分組成:

  • 連接池組件
  • 管理服務和工具組件
  • SQL接口組件
  • 查詢分析器組件
  • 優化器組件
  • 緩沖組件
  • 插件式儲存引擎
  • 物理文件

需要特別注意的是:存儲引擎是基于表的,而不是數據庫。

MYSQL存儲引擎

? 存儲引擎是MYSQL區別與其他數據庫的一個最重要特性。用戶可以根據MYSQL預定的存儲引擎接口編寫自己的存儲引擎。若用戶對某一種存儲引擎的性能或功能不滿意。可以通過修改源碼來得到想要的特性,這就是開源帶給我們的方便與力量。

InnoDB存儲引擎

  • 支持事務:主要面向在線事務處理(OLTP)應用。特點是
    • 行鎖設計
    • 支持外鍵
    • 支持類似于Oracle的非鎖定讀,即默認讀取操作不會產生鎖。
  • 數據放在一個邏輯的表空間,這個表空間像黑盒一樣由INNODB存儲引擎自身進行管理。它可以將每個INNODB存儲引擎的表單獨存放到一個獨立的ibd文件中。
  • 通過使用多版本并發控制(MVCC)來獲得高并發性
  • 實現了SQL標準的四種隔離級別。默認為REPEATABLE級別。使用一種被稱為next-keylocking的策略來避免幻讀現象的產生。
  • 提供插入緩沖、二次寫、自適應哈希索引、預讀等高性能和高可用功能。
  • 表中數據采用聚集的方式存放,因此每場表的儲存都是按主鍵的順序進行存放,如果沒有顯式指定主鍵,則會為每一行生成一個6字節的ROWID,并作為主鍵。

MyISAM存儲引擎

  • 不支持事務,支持全文索引,主要面向一些OLAP數據庫應用。
  • 緩沖池只緩沖索引文件,不緩沖數據文件。
  • MYD用來存放數據文件,MYI用來存放索引文件。

NDB存儲引擎

  • 集群架構:share nothing
  • 數據全部放在內存中,因此主鍵查找的速度極快,并且通過添加NDB數據存儲節點可以線性地提高數據庫性能,是高可用、高性能的集群系統。
  • NDB存儲引擎的連接操作是在MYSQL數據庫層完成的,而是在存儲引擎層完成的。這意味著,復雜的連接操作需要巨大的網絡開銷

Memory存儲引擎

  • 數據都存放在內存中,非常適合用于存儲臨時數據的臨時表,以及數據倉庫中的維度表。
  • 默認使用哈希索引
  • 只支持表鎖,并發性能較差,不支持TEXT和BLOB列類型
  • 存儲變長字段(varchar)時按照定常字段(char)的方式進行的,會浪費內存。

Archive存儲引擎

  • 只支持INSERT和SELECT操作
  • 支持索引
  • 使用zlib算法將數據行進行壓縮后存儲,壓縮比一般達1:10
  • 適合存儲歸檔數據,例如日志信息等。
  • 使用行鎖實現高并發的插入操作
  • 不支持事務

FEDERATED存儲引擎

  • 不存放數據,只是指向一臺遠程MYSQL數據庫服務器上的表。這非常類似于SQL SERVER的聯結服務器和Oracle的透明網關
  • 不支持異構

Maria存儲引擎

  • 支持魂村數據和索引文件
  • 行鎖設計,提供了MVCC功能
  • 支持事務和非事務安全的選項
  • 更好的BLOB字符類型的處理性能。
# 查看數據庫鎖支持的存儲引擎 SHOW ENGINES\G

轉載于:https://www.cnblogs.com/BlueMountain-HaggenDazs/p/9297868.html

總結

以上是生活随笔為你收集整理的MySQL技术内幕读书笔记(一)——Mysql体系结构和存储引擎的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。