成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

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

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

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

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

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

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

一、InnoDB

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

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

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

二、MyISAM

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

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

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

MyISAM是對整個表加鎖,而不是行鎖,讀取的時候?qū)Ρ砑庸蚕礞i,寫入的時候加排他鎖。但是在表有讀取查詢的同時,也可以往表內(nèi)寫入記錄。

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

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

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

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

其他存儲引擎

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

三、Archive

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

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

四、Blackhole

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

五、CSV

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

六、Federated

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

七、Memroy

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

八、Merge

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

九、NDB 集群 引擎

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

特殊

十、PERFORMANCE_SCHEMA

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

performance_schema提供以下功能:

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

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

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

performance_schema功能開啟和部分表功能

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

SHOW VARIABLES LIKE 'performance_schema';

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

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

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

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

廣告

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

成都網(wǎng)站建設(shè)公司
澳门| 扶余县| 双江| 祁东县| 格尔木市| 穆棱市| 大宁县| 出国| 精河县| 华池县| 博兴县| 莱西市| 喀喇沁旗| 丰台区| 米易县| 达拉特旗| 班戈县| 杨浦区| 宣武区| 台州市| 凤庆县| 阿克苏市| 孝昌县| 靖州| 霍林郭勒市| 邮箱| 扎赉特旗| 南丹县| 安顺市| 吉隆县| 尼玛县| 普格县| 开江县| 蓝山县| 确山县| 江山市| 泗阳县| 开鲁县| 安西县| 禹城市| 司法|