好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > 簡單了解MySQL存儲引擎

簡單了解MySQL存儲引擎

熱門標簽:臨沂做地圖標注 新鄉智能外呼系統好處 地圖標注客戶付款 申請400電話電話價格 許昌外呼增值業務線路 咸陽防封電銷卡 廣東400企業電話申請流程 石家莊400電話辦理公司 宜賓全自動外呼系統廠家

1. MySql體系結構

在介紹存儲引擎之前先來介紹下MySql的體系結構,以便大家知道存儲引擎在MySql整個體系中處于什么位置。下圖是官方提供的一張架構圖:

MySQL體系結構圖

從上圖可以發現,MySQL由以下幾部分組成:

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

MySQL數據庫區別于其他數據庫的最重要的一個特點就是其插件式的表存儲引擎,從上圖中也可以看到,MySql支持很多種存儲引擎。需要特別注意的是,存儲引擎是基于表的,而不是數據庫。

2. MySql存儲引擎

插件式存儲引擎的好處是:能夠根據具體的應用的特點選擇不同的存儲引擎。下面是幾種MySQL常用的存儲引擎。

2.1 InnoDB存儲引擎

InnoDB存儲引擎支持事務,其設計目標主要面向在線事務處理(OLTP)的應用。其特點是行鎖設計、支持外鍵,并支持類似于Oracle的非鎖定讀,即默認讀取操作不會產生鎖。從MySQL數據庫5.5.8版本開始,InnoDB存儲引擎是默認的存儲引擎。

InnoDB通過使用多版本并發控制(MVCC)來獲得高并發性,并且實現了SQL標準的4種隔離級別,默認為REPEATABLE級別。同時,使用一種被稱為next-key locking的策略來避免幻讀(phantom)現象的產生。除此之外,InnoDB儲存引擎還提供了插入緩沖(insert buffer)、二次寫(double write)、自適應哈希索引(adaptive hash index)、預讀(read ahead)等高性能和高可用的功能。

對于表中數據的存儲,InnoDB存儲引擎采用了聚集(clustered)的方式,因此每張表的存儲都是按主鍵的順序進行存放。如果沒有顯式地在表定義時指定主鍵,InnoDB存儲引擎會為每一行生成一個6字節的ROWID,并以此作為主鍵。

2.2 MyISAM存儲引擎

MyISAM存儲引擎不支持事務、表鎖設計,支持全文索引,主要面向一些OLAP數據庫應用。此外,MyISAM存儲引擎的另一個與眾不同的地方是它的緩沖池只緩存(cache)索引文件,而不緩沖數據文件,這點和大多數的數據庫都非常不同。從MySQL 5.0版本開始,MyISAM默認支持256TB的單表數據,這足夠滿足一般應用需求。

2.3 Memory存儲引擎

Memory存儲引擎(之前稱HEAP存儲引擎)將表中的數據存放在內存中,如果數據庫重啟或發生崩潰,表中的數據都將消失。它非常適合用于存儲臨時數據的臨時表,以及數據倉庫中的緯度表。Memory存儲引擎默認使用哈希索引,而不是我們熟悉的B+樹索引。

雖然Memory存儲引擎速度非??欤谑褂蒙线€是有一定的限制。比如,只支持表鎖,并發性能較差,并且不支持TEXT和BLOB列類型。最重要的是,存儲變長字段(varchar)時是按照定常字段(char)的方式進行的,因此會浪費內存。

此外有一點容易被忽視,MySQL數據庫使用Memory存儲引擎作為臨時表來存放查詢的中間結果集(intermediate result)。如果中間結果集大于Memory存儲引擎表的容量設置,又或者中間結果含有TEXT或BLOB列類型字段,則MySQL數據庫會把其轉換到MyISAM存儲引擎表而存放到磁盤中。之前提到MyISAM不緩存數據文件,因此這時產生的臨時表的性能對于查詢會有損失。

2.4 Archive存儲引擎

Archive存儲引擎只支持INSERT和SELECT操作,從MySQL 5.1開始支持索引。Archive存儲引擎使用zlib算法將數據行(row)進行壓縮后存儲,壓縮比一般可達1∶10。正如其名字所示,Archive存儲引擎非常適合存儲歸檔數據,如日志信息。Archive存儲引擎使用行鎖來實現高并發的插入操作,但是其本身并不是事務安全的存儲引擎,其設計目標主要是提供高速的插入和壓縮功能。

當然MySql還支持很多其他的存儲引擎,這邊不一一列舉了。

3. 存儲引擎對比整理

存儲引擎可以理解為表的存儲結構,每種存儲引擎都支持不同的特性。MySQL支持插件式的存儲引擎,可以為每張數據表指定不同的存儲引擎。常用的存儲引擎的特點整體如下:

我們也可以使用下面命令查看當前數據庫支持哪些存儲引擎:

-- 查看支持的存儲引擎
show engines;

下面對最常用的三種存儲引擎做下簡單總結介紹:

  • InnoDB:MySQL默認的存儲引擎,支持事務、支持行級鎖和表級鎖、支持各類索引、支持外鍵,高版本的MySQL還支持全文索引,但是批量數據插入的效率較低;
  • MyISAM:具有較高的數據插入效率和數據查詢速度,支持全文索引,但是不支持數據庫事務,不支持行級鎖,只支持表級鎖;
  • MEMORY:使用這個存儲引擎時,會將表中的數據加載到內存中,查詢很快,但是對內存要求較高。

所以我們應該根據應用的具體需求選擇合適的存儲引擎,而不是不加思考的都選擇默認存儲引擎(INNODB)。

如果要提供提交、回滾和恢復的事務安全(ACID兼容)能力,并要求實現并發控制,InnoDB是一個很好的選擇。如果數據表主要用來插入和查詢記錄,則MyISAM引擎提供較高的處理效率。如果只是臨時存放數據,數據量不大,并且不需要較高的數據安全性,可以選擇將數據保存在內存的MEMORY引擎中,MySQL中使用該引擎作為臨時表,存放查詢的中間結果。如果只有INSERT和SELECT操作,可以選擇Archive引擎,Archive存儲引擎支持高并發的插入操作,但是本身并不是事務安全的。Archive存儲引擎非常適合存儲歸檔數據,如記錄日志信息可以使用Archive引擎。

4. 參考

《MySQL技術內幕》

以上就是簡單了解MySQL存儲引擎的詳細內容,更多關于MySQL存儲引擎的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • MySQL Memory 存儲引擎淺析
  • 詳解mysql中的存儲引擎
  • MySQL 選擇合適的存儲引擎
  • 聊聊MySQL中的存儲引擎
  • 簡述MySQL InnoDB存儲引擎
  • MySQL存儲引擎MyISAM與InnoDB區別總結整理
  • MySQL InnoDB存儲引擎的深入探秘
  • MySQL常用存儲引擎功能與用法詳解
  • 基于MySQL的存儲引擎與日志說明(全面講解)
  • MySQL存儲引擎總結
  • MySQL存儲引擎中的MyISAM和InnoDB區別詳解
  • 關于MySQL Memory存儲引擎的相關知識

標簽:貴州 鎮江 鷹潭 臺灣 北京 合肥 日照 阜新

巨人網絡通訊聲明:本文標題《簡單了解MySQL存儲引擎》,本文關鍵詞  簡單,了解,MySQL,存儲,引擎,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《簡單了解MySQL存儲引擎》相關的同類信息!
  • 本頁收集關于簡單了解MySQL存儲引擎的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 亚洲字字幕在线中文乱码全集资源| 欧美亚洲欧美日韩中文二区 | 秋霞免费一级鲁丝片| 久久妻| 国色天香www| 韩国无遮羞禁漫画大全| 无码精品日韩专区第一页| 人妻奶水人妻系列28部| 国产亚洲精品bt天堂| gay肉文| 日本女人在隔壁房间很便宜| 爸爸...我要...你的| 整夜不拔h1v2男男| 男人扒开女人裤衩又摸又桶| 苏媚与公做了一夜伦理全文阅读 | 免费观看欧美性一级| 女人与公拘交酡女免费| www.5555香蕉.com| 男生干女生软件| 国产精品黄色片| 高h翁妇肉吃奶| 成人18免费韩国| 中国奶水japanesemilking| 日韩精品三级| 国产婬妇?????.金瓶.中国| 香港一级婬片A片在线播放鬼叫春| 国产一级婬片A片久久久网站入口 无码人妻精品一区二区三区-电影 | japanesexxxx19| 欧美高清360| 中法36家企业签18项协议| 农村妇女偷做爰免费视频| 日本片在线看的免费网站| 亚洲热视频| 影音先锋男人资源av啪啪| 国产精品ZZO0性XXX激情| 亚洲女初尝黑人巨高清| 日韩美女一级毛片| 国产aaa三级| 中国大陆高清aⅴ毛片 | 欧美特黄a级高清免费大片| 中文字幕黄色|