MYSQL支持的數(shù)據(jù)引擎
創(chuàng)新互聯(lián)公司主要為客戶提供服務(wù)項目涵蓋了網(wǎng)頁視覺設(shè)計、VI標(biāo)志設(shè)計、成都全網(wǎng)營銷、網(wǎng)站程序開發(fā)、HTML5響應(yīng)式成都網(wǎng)站建設(shè)、成都做手機(jī)網(wǎng)站、微商城、網(wǎng)站托管及網(wǎng)站維護(hù)公司、WEB系統(tǒng)開發(fā)、域名注冊、國內(nèi)外服務(wù)器租用、視頻、平面設(shè)計、SEO優(yōu)化排名。設(shè)計、前端、后端三個建站步驟的完善服務(wù)體系。一人跟蹤測試的建站服務(wù)標(biāo)準(zhǔn)。已經(jīng)為水泥攪拌車行業(yè)客戶提供了網(wǎng)站營銷服務(wù)。
MyISAM:默認(rèn)的MySQL插件式存儲引擎,它是在Web、數(shù)據(jù)倉儲和其他應(yīng)用環(huán)境下最常使用的存儲引擎之一。
InnoDB:用于事務(wù)處理應(yīng)用程序,具有眾多特性,包括ACID事務(wù)支持。
BDB:可替代InnoDB的事務(wù)引擎,支持COMMIT、ROLLBACK和其他事務(wù)特性。
Memory:將所有數(shù)據(jù)保存在RAM中,在需要快速查找引用和其他類似數(shù)據(jù)的環(huán)境下,可提供極快的訪問。
Merge:允許MySQL DBA或開發(fā)人員將一系列等同的MyISAM表以邏輯方式組合在一起,并作為1個對象引用它們。對于諸如數(shù)據(jù)倉儲等VLDB環(huán)境十分適合。
Archive:為大量很少引用的歷史、歸檔、或安全審計信息的存儲和檢索提供了完美的解決方案。
Federated:能夠?qū)⒍鄠€分離的MySQL服務(wù)器鏈接起來,從多個物理服務(wù)器創(chuàng)建一個邏輯數(shù)據(jù)庫。十分適合于分布式環(huán)境或數(shù)據(jù)集市環(huán)境。
Cluster/NDB:MySQL的簇式數(shù)據(jù)庫引擎,尤其適合于具有高性能查找要求的應(yīng)用程序,這類查找需求還要求具有最高的正常工作時間和可用性。
Other:其他存儲引擎包括CSV(引用由逗號隔開的用作數(shù)據(jù)庫表的文件),Blackhole(用于臨時禁止對數(shù)據(jù)庫的應(yīng)用程序輸入),以及Example引擎(可為快速創(chuàng)建定制的插件式存儲引擎提供幫助)。
3、啟動InnoDB引擎的方法
Mysql中默認(rèn)的是MyISAM數(shù)據(jù)引擎,可惜此引擎不支持事務(wù)處理,我們需要將默認(rèn)的數(shù)據(jù)引擎改為InnoDB。其中InnoDB和
BerkeleyDB支持事務(wù)處理,只是默認(rèn)的情況下都是被disable的。所有的引擎里面,InnoDB性能最強(qiáng)大,算是商業(yè)級的。啟動InnoDB引擎的方法如下:
1)關(guān)閉mysql的服務(wù)
2)修改my.ini
將default-storage-engine=INNODB前的注釋(#)去掉
將skip-innodb這行注釋(加上#)
3)保存后重啟mysql服務(wù)
4、MyISAM引擎和InnoDB引擎的基本差別
MyISAM類型不支持事務(wù)處理等高級處理,而InnoDB類型支持。
MyISAM類型的表強(qiáng)調(diào)的是性能,其執(zhí)行數(shù)度比InnoDB類型更快,但是不提供事務(wù)支持,而InnoDB提供事務(wù)支持已經(jīng)外部鍵等高級數(shù)據(jù)庫功能。
MyIASM是IASM表的新版本,有如下擴(kuò)展:二進(jìn)制層次的可移植性、NULL列索引、對變長行比ISAM表有更少的碎片、支持大文件、更好的索引壓縮等
InnoDB不支持FULLTEXT類型的索引
InnoDB 中不保存表的具體行數(shù)
對于AUTO_INCREMENT類型的字段,InnoDB中必須包含只有該字段的索引,但是在MyISAM表中,可以和其他字段一起建立聯(lián)合索引
DELETE FROM table時,InnoDB不會重新建立表,而是一行一行的刪除
…………
這些區(qū)別能夠影響應(yīng)用程序的性能和功能,因此你必須針對業(yè)務(wù)類型來選擇合適的引擎,才能最大的發(fā)揮MySQL的性能優(yōu)勢。
MySQL數(shù)據(jù)庫InnoDB存儲引擎使用了B策略, InnoDB存儲引擎中的恢復(fù)機(jī)制有幾個特點(diǎn):
A. 在重做Redo Log時,并不關(guān)心事務(wù)性。 恢復(fù)時,沒有BEGIN,也沒有COMMIT,ROLLBACK的行為。也不關(guān)心每個日志是哪個事務(wù)的。盡管事務(wù)ID等事務(wù)相關(guān)的內(nèi)容會記入Redo Log,這些內(nèi)容只是被當(dāng)作要操作的數(shù)據(jù)的一部分。
B. 使用B策略就必須要將Undo Log持久化,而且必須要在寫Redo Log之前將對應(yīng)的Undo Log寫入磁盤。Undo和Redo Log的這種關(guān)聯(lián),使得持久化變得復(fù)雜起來。為了降低復(fù)雜度,InnoDB將Undo Log看作數(shù)據(jù),因此記錄Undo Log的操作也會記錄到redo log中。這樣undo log就可以象數(shù)據(jù)一樣緩存起來,而不用在redo log之前寫入磁盤了。
包含Undo Log操作的Redo Log,看起來是這樣的:
記錄1: trx1, Undo log insert undo_insert …
記錄2: trx1, insert …
記錄3: trx2, Undo log insert undo_update …
記錄4: trx2, update …
記錄5: trx3, Undo log insert undo_delete …
記錄6: trx3, delete …
C. 到這里,還有一個問題沒有弄清楚。既然Redo沒有事務(wù)性,那豈不是會重新執(zhí)行被回滾了的事務(wù)?確實(shí)是這樣。同時Innodb也會將事務(wù)回滾時的操作也記錄到redo log中?;貪L操作本質(zhì)上也是對數(shù)據(jù)進(jìn)行修改,因此回滾時對數(shù)據(jù)的操作也會記錄到Redo Log中。
一個回滾了的事務(wù)的Redo Log,看起來是這樣的:
記錄1: trx1, Undo log insert undo_insert …
記錄2: trx1, insert A…
記錄3: trx1, Undo log insert undo_update …
記錄4: trx1, update B…
記錄5: trx1, Undo log insert undo_delete …
記錄6: trx1, delete C…
記錄7: trx1, insert C
記錄8: trx1, update B to old value
記錄9: trx1, delete A
一個被回滾了的事務(wù)在恢復(fù)時的操作就是先redo再undo,因此不會破壞數(shù)據(jù)的一致性.
- InnoDB存儲引擎中相關(guān)的函數(shù)
Redo: recv_recovery_from_checkpoint_start()
Undo: recv_recovery_rollback_active()
Undo Log的Redo Log: trx_undof_page_add_undo_rec_log()
一般情況下,mysql會默認(rèn)提供多種存儲引擎,你可以通過下面的查看:\x0d\x0a\x0d\x0a看你的mysql現(xiàn)在已提供什么存儲引擎:\x0d\x0amysql show engines;\x0d\x0a\x0d\x0a看你的mysql當(dāng)前默認(rèn)的存儲引擎:\x0d\x0amysql show variables like '%storage_engine%';\x0d\x0a\x0d\x0a你要看某個表用了什么引擎(在顯示結(jié)果里參數(shù)engine后面的就表示該表當(dāng)前用的存儲引擎):\x0d\x0amysql show create table 表名;
新聞名稱:MySQL怎么打開引擎 mysql80怎么啟動
本文路徑:http://jinyejixie.com/article48/doseshp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動網(wǎng)站建設(shè)、品牌網(wǎng)站制作、網(wǎng)站內(nèi)鏈、用戶體驗(yàn)、Google、企業(yè)網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)