mysql引擎間的區(qū)別有哪些

這篇文章主要介紹“MySQL引擎間的區(qū)別有哪些”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“mysql引擎間的區(qū)別有哪些”文章能幫助大家解決問題。

創(chuàng)新互聯(lián)公司專注于雁江企業(yè)網站建設,成都響應式網站建設公司,商城網站開發(fā)。雁江網站建設公司,為雁江等地區(qū)提供建站服務。全流程按需網站設計,專業(yè)設計,全程項目跟蹤,創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務

區(qū)別:1、InnoDB引擎用于處理大量短期事務,很少回滾;2、MyISAM引擎不支持事務和行級鎖,崩潰后無法安全恢復;3、Archive引擎支持Insert,Select操作;4、Blackhole引擎沒有任何存儲機制,會舍棄所有寫入數(shù)據。

本教程操作環(huán)境:windows10系統(tǒng)、mysql8.0.22版本、Dell G3電腦。

mysql引擎之間的區(qū)別是什么

一、InnoDB

InnoDB是MySQL默認的事務型引擎,也是最重要、最廣泛的存儲引擎。它的設計是用來處理大量短期事務,短期事務大部分是正常提交的,很少回滾。InnoDB的性能和自動崩潰恢復特性,使得它在非事務型存儲的需求中,也很流行。除了非常特別的原因需要使用其他引擎,InnoDB也是非常好值得花時間研究的對象。

InnoDB的數(shù)據存儲在表空間中,表空間是由InnoDB管理的黑盒文件系統(tǒng),由一系列系統(tǒng)文件組成。InnoDB可以將每個表的數(shù)據和索引存放在單獨的文件中。InnoDB也可以使用裸設備作為表空間存儲介質。

InnoDB通過間隙鎖(next-key locking)防止幻讀的出現(xiàn)。InnoDB是基于聚簇索引建立,與其他存儲引擎有很大的區(qū)別,聚簇索引對主鍵查詢有很高的性能,不過它的二級索引(secondary index,非主鍵索引)必須包含主鍵列。所以如果主鍵列很大的話,索引會很大。

二、MyISAM

在5.1之前,MyISAM是默認的引擎,MyISAM有大量的特心態(tài),包括全文索引、壓縮、空間函數(shù)。但是MyISAM不支持事務和行級鎖,而且在崩潰后無法安全恢復。即使后續(xù)版本中MyISAM支持了事務,但是很多人的概念中依然是不支持事務的引擎。

MyISAM并不是無所事處。對于一些只讀數(shù)據,或者表空間較小,可以忍受恢復操作,可以使用MyISAM。MyISAM會將表存儲在兩個文件中:數(shù)據文件、索引文件。分別是.MYD、.MYI擴展名。MyISAM表可以包含動態(tài)或者靜態(tài)行。MySQL會根據表定義選擇那種行格式。MyISAM表的行記錄數(shù),取決于磁盤空間和操作系統(tǒng)中的單個文件最大尺寸。

在MySQL中,默認配置只能存儲256TB的數(shù)據。因為指向數(shù)據記錄的指針長度是6字節(jié)。需要修改可以修改表的MAX_ROWS和AVG_ROW_LENGTH選項。兩個相乘是最大的大小。會導致重建索引。

MyISAM是對整個表加鎖,而不是行鎖,讀取的時候對表加共享鎖,寫入的時候加排他鎖。但是在表有讀取查詢的同時,也可以往表內寫入記錄。

對于MyISAM,即使是Blob,Text等等長字段,也可以基于前500字符創(chuàng)建索引,MyISAM支持全文索引,這是一個基于分詞創(chuàng)建的索引,也可以支持復雜的查詢。

MyISAM可以選擇延遲更新索引鍵,在創(chuàng)建表的時候指定delay_key_write選項,在每次修改執(zhí)行完成時,不會立刻將修改的索引數(shù)據寫入磁盤,而是寫到緩存區(qū),只有在清理緩存區(qū)或者關閉表的時候才會將索引寫入磁盤。這可以極大的提升寫入性能,但是在主機崩潰時會造成索引損壞,需要執(zhí)行修復操作。

MyISAM另一個特性是支持壓縮表。如果數(shù)據在寫入后不會修改,那么這個表適合MyISAM壓縮表。可以使用myisampack對MyISAM表進行打包,壓縮表是不可以修改數(shù)據的。壓縮表可以極大的減少磁盤占用,因此可以減少磁盤IO,提升性能,壓縮表也支持索引,但是索引也是只讀的。

整體來說MyISAM并沒有那么不堪,但是由于沒有行鎖機制,所以在海量寫入的時候,會導致所有查詢處于Locked狀態(tài)。

其他存儲引擎

MySQL還有一些其他特殊用途的引擎,有些可能不再支持,具體支持情況參考數(shù)據庫支持引擎。

三、Archive

Archive引擎支持是Insert,Select操作,現(xiàn)在支持索引,Archive引擎會緩存所有的寫,并利用zlib對寫入行進行壓縮,所以比MyISAM表的磁盤IO更少。但是在每次Select查詢都需要執(zhí)行全表掃描。所以在Archive適合日志和數(shù)據采集應用。這類應用在分析時往往需要全表掃描忙活著更快的Insert操作場景中也可以使用。

Archive引擎支持行級鎖和專用的緩存區(qū),所以可以實現(xiàn)高并發(fā)寫入,在查詢開始到返回表存在的所有行數(shù)之前,Archive會阻止其他Select執(zhí)行,用來實現(xiàn)一致性讀。另外也實現(xiàn)了批量寫入結束前批量寫入數(shù)據對讀操作不可見,這種機制模仿了事務和MVCC的特性,但是Archive不是一個事務型引擎,而是針對高寫入壓縮做了優(yōu)化的簡單引擎。

四、Blackhole

Blackhole沒有實現(xiàn)任何存儲機制,它會舍棄所有寫入數(shù)據,不做任何保存,但是服務器會記錄Blackhole表的日志,用于復制數(shù)據到備庫,或者只是簡單的記錄到日志,這種特殊的存儲引擎可以在一些特俗的復制架構和日志審核時發(fā)揮作用。但是不推薦。

五、CSV

CSV引擎可以將普通的CSV文件作為MySQL表來處理,但是這種表不支持索引,CSV可以在數(shù)據庫運行時拷貝或者拷出文件,可以將Excel等電子表格中的數(shù)據存儲未CSV文件,然后復制到MySQL中,就能在MySQL中打開使用。同樣,如果將數(shù)據寫入到一個CSV引擎表,其他外部程序也可以從表的數(shù)據文件中讀取CSV的數(shù)據。因此CSV可以作為數(shù)據交換機制。非常好用。

六、Federated

Federated引擎是訪問其他MySQL服務器的一個代理,它會創(chuàng)建一個到遠程MySQL服務器的客戶端連接,并將查詢傳輸?shù)竭h程服務器執(zhí)行,然后提取或者發(fā)送需要的數(shù)據。最初設計該存儲引擎是為了和企業(yè)級數(shù)據庫如MicrosoftSQLServer和Oracle的類似特性競爭的,可以說更多的是一種市場行為。盡管該引擎看起來提供了一種很好的跨服務器的靈活性,但也經常帶來問題,因此默認是禁用的。

七、Memroy

如果需要快速地訪問數(shù)據,并且這些數(shù)據不會被修改,重啟以后丟失也沒有關系,那么使用Memory表(以前也叫做HEAP表)是非常有用的。Memory表至少比MyISAM表要快一個數(shù)量級,因為所有的數(shù)據都保存在內存中,不需要進行磁盤I/O。Memory表的結構在重啟以后還會保留,但數(shù)據會丟失。

八、Merge

Merge引擎是MyISAM引擎的一個變種。Merge表是由多個MyISAM表合并而來的虛擬表。如果將MySQL用于日志或者數(shù)據倉庫類應用,該引擎可以發(fā)揮作用。但是引入分區(qū)功能后,該引擎已經被放棄

九、NDB 集群 引擎

NDB集群存儲引擎,作為SQL和NDB原生協(xié)議之間的接口。MySQL服務器、NDB集群存儲引擎,以及分布式的、share-nothing的、容災的、高可用的NDB數(shù)據庫的組合,被稱為MySQL集群(MySQLCluster)。

特殊

十、PERFORMANCE_SCHEMA

MySQL 5.5新增一個存儲引擎:命名PERFORMANCE_SCHEMA ,主要用于收集數(shù)據庫服務器性能參數(shù)。MySQL用戶是不能創(chuàng)建存儲引擎為PERFORMANCE_SCHEMA的表。

performance_schema提供以下功能:

提供進程等待的詳細信息,包括鎖、互斥變量、文件信息;

保存歷史的事件匯總信息,為提供MySQL服務器性能做出詳細的判斷;

對于新增和刪除監(jiān)控事件點都非常容易,并可以隨意改變mysql服務器的監(jiān)控周期,例如(CYCLE、MICROSECOND)

performance_schema功能開啟和部分表功能

Performance的開啟很簡單,在my.cnf中[mysqld]加入performanc_schema,檢查性能數(shù)據庫是否啟動的命令:

SHOW VARIABLES LIKE 'performance_schema';

若是返回的 值為ON,則說明性能數(shù)據庫正常開啟狀態(tài)。

關于“mysql引擎間的區(qū)別有哪些”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關的知識,可以關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,小編每天都會為大家更新不同的知識點。

網站標題:mysql引擎間的區(qū)別有哪些
當前地址:http://muchs.cn/article28/ipjejp.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供品牌網站設計、網站制作、電子商務、網站設計公司、網站策劃、外貿建站

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都網站建設公司