成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

兩種主要MySQL表存儲結(jié)構(gòu)MyISAM和InnoDB比較

數(shù)據(jù)庫 MySQL
MyISAM是MySQL關(guān)系數(shù)據(jù)庫管理系統(tǒng)的默認(rèn)儲存引擎,而InnoDB是MySQL的另一個(gè)存儲引擎,正成為目前MySQL AB所發(fā)行新版的標(biāo)準(zhǔn),下文對這兩者進(jìn)行了比較,供您參考。

MySQL表存儲結(jié)構(gòu)是MySQL數(shù)據(jù)庫的重要組成部分,下面就為您介紹兩種主要MySQL表存儲結(jié)構(gòu)--MyISAM和InnoDB,希望對您能有所幫助。

什么是MyISAM?

MyISAM是MySQL關(guān)系數(shù)據(jù)庫管理系統(tǒng)的默認(rèn)儲存引擎。這種MySQL表存儲結(jié)構(gòu)從舊的ISAM代碼擴(kuò)展出許多有用的功能。在新版本的MySQL中,InnoDB引擎由于其對事務(wù),參照完整性,以及更高的并發(fā)性等優(yōu)點(diǎn)開始廣泛的取代MyISAM。

每一個(gè)MyISAM表都對應(yīng)于硬盤上的三個(gè)文件。這三個(gè)文件有一樣的文件名,但是有不同的擴(kuò)展名以指示其類型用途:.frm文件保存表的定義,但是這個(gè)文件并不是MyISAM引擎的一部,而是服務(wù)器的一部分;.MYD保存表的數(shù)據(jù);.MYI是表的索引文件。

什么是InnoDB?

InnoDB是MySQL的另一個(gè)存儲引擎,正成為目前MySQL AB所發(fā)行新版的標(biāo)準(zhǔn),被包含在所有二進(jìn)制安裝包里。較之于其它的存儲引擎它的優(yōu)點(diǎn)是它支持兼容ACID的事務(wù)(類似于PostgreSQL),以及參數(shù)完整性(即對外鍵的支持)。

Oracle公司與2005年10月收購了Innobase。Innobase采用雙認(rèn)證授權(quán)。它使用GNU發(fā)行,也允許其它想將InnoDB結(jié)合到商業(yè)軟件的團(tuán)體獲得授權(quán)。

 

目前比較普及的存儲引擎是MyISAM和InnoDB.而MyISAM又是絕大部分Web應(yīng)用的***。MyISAM與InnoDB的主要的不同點(diǎn)在于性能和事務(wù)控制上。

MyISAM是早期ISAM(Indexed Sequential Access Method,現(xiàn)在用的MySQL5.0已經(jīng)不支持ISAM了)的擴(kuò)展實(shí)現(xiàn),ISAM被設(shè)計(jì)為適合處理讀頻率遠(yuǎn)大于寫頻率這樣一種情況,因此ISAM以及后來的MyISAM都沒有考慮對事物的支持,排除了TPM,不需要事務(wù)記錄,ISAM的查詢效率相當(dāng)可觀,而且內(nèi)存占用很少。MyISAM在繼承了這類優(yōu)點(diǎn)的同時(shí),與時(shí)俱進(jìn)的提供了大量實(shí)用的新特性和相關(guān)工具。例如考慮到并發(fā)控制,提供了表級鎖,雖然MyISAM本身不支持容錯(cuò),但可以通過myisamchk進(jìn)行故障恢復(fù)。而且由于MyISAM是每張表使用各自獨(dú)立的存儲文件(MYD數(shù)據(jù)文件和MYI索引文件),使得備份及恢復(fù)十分方便(拷貝覆蓋即可),而且還支持在線恢復(fù)。與其他存儲引擎比較,MyISAM具有檢查和修復(fù)表格的大多數(shù)工具. MyISAM表格可以被壓縮,而且它們支持全文搜索.它們不是事務(wù)安全的,而且也不支持外鍵

所以如果你的應(yīng)用是不需要事務(wù),處理的只是基本的CRUD操作,那么MyISAM是不二選擇

InnoDB被設(shè)計(jì)成適用于高并發(fā)讀寫的情況.使用MVCC(Multi-Version Concurrency Control)以及行級鎖來提供遵從ACID的事務(wù)支持。InnoDB支持外鍵參照完整性,具備故障恢復(fù)能力。另外 InnoDB的性能其實(shí)還是不錯(cuò)的,特別是在處理大數(shù)據(jù)量的情況下,用官方的話說就是: InnoDB的CPU效率是其他基于磁盤的關(guān)系數(shù)據(jù)庫存儲引擎所不能比的。不過InnoDB的備份恢復(fù)要麻煩一點(diǎn),除非你使用了4.1以后版本提供的Mulit-tablespace支持,因?yàn)镮nnoDB和MyISAM不同,他的數(shù)據(jù)文件并不是獨(dú)立對應(yīng)于每張表的。而是使用的共享表空間,簡單的拷貝覆蓋方法對他不適用,必須在停掉MYSQL后對進(jìn)行數(shù)據(jù)恢復(fù)。使用Per-Table Tablespacesd,使其每張表對應(yīng)一個(gè)獨(dú)立的表空間文件,則情況要簡單很多。它與BDB類型具有相同的特性,它們還支持外鍵.InnoDB表格速度很快.具有比BDB還豐富的特性,因此如果需要一個(gè)事務(wù)安全的存儲引擎,建議使用它.

一般來說,如果需要事務(wù)支持,并且有較高的并發(fā)讀寫頻率,InnoDB是不錯(cuò)的選擇。要是并發(fā)讀寫頻率不高的話,其實(shí)可以考慮BDB,但由于在MySQL5.1及其以后版本中,將不再提供BDB支持。這個(gè)選項(xiàng)也就沒有了

InnoDB默認(rèn)情況下的事務(wù)是打開的(set autocommit = 0)就是說每插入一條記錄時(shí)候,InnoDB類型的表都會把它當(dāng)作一個(gè)單獨(dú)的事務(wù)來處理.所以如果我們插入了10000條記錄,而且沒有將事務(wù)關(guān)閉,那么InnoDB類型的表會把它當(dāng)作10000個(gè)事務(wù)來處理,此時(shí)插入的總時(shí)間是很多的,這個(gè)時(shí)候一定要首先把事務(wù)關(guān)掉再插入,這樣的速度就很快了

至于Heap和BDB(Berkeley DB),相對來說,普及率不如前兩種,但在有些情況下,還是挺適用的

Heap存儲引擎就是將數(shù)據(jù)存儲在內(nèi)存中,由于沒有磁盤I./O的等待,速度極快。但由于是內(nèi)存存儲引擎,所做的任何修改在服務(wù)器重啟后都將消失。

Heap挺適合做測試的時(shí)候使用

BDB是MySQL***款事務(wù)安全的存儲引擎。在Berkeley DB database library的基礎(chǔ)上建立,同樣是事務(wù)安全的,但BDB的普及率顯然不及InnoDB,因?yàn)榇蠖鄶?shù)在MySQL中尋找支持事務(wù)的存儲引擎的同時(shí)也在找支持MVCC或是行級鎖定存儲引擎,而BDB只支持Page-level Lock。

附上一張《High Performance MySQL》 中的各存儲引擎的特性表

Attribute

MyISAM

Heap

BDB

InnoDB

Transactions

No

No

Yes

Yes

Lock granularity

Table

Table

Page (8 KB)

Row

Storage

Split files

In-memory

Single file per table

Tablespace(s)

Isolation levels

None

None

Read committed

All

Portable format

Yes

N/A

No

Yes

Referential integrity

No

No

No

Yes

Primary key with data

No

No

Yes

Yes

MySQL caches data records

No

Yes

Yes

Yes

Availability

All versions

All versions

MySQL-Max

All Versions

 

 

 

【編輯推薦】

MySQL字段自增長的實(shí)現(xiàn)

詳解MySQL外鍵設(shè)置

MySQL添加字段和刪除字段

MySQL字段中的集合

MySQL字段中的枚舉

 

責(zé)任編輯:段燃 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2010-05-11 15:06:24

MySQL MyISA

2019-06-11 16:11:16

MySQLMyISAMInnoDB

2010-05-21 16:10:28

2009-05-05 10:19:37

存儲引擎InnoDBMyISAM

2018-06-14 10:44:59

MySQLMyISAMInnoDB

2010-11-23 13:24:16

MySQL MyISA

2009-11-12 10:24:19

ADO.NET代碼

2009-05-19 09:58:41

MyISAMInnoDB存儲引擎

2011-04-06 12:41:41

Java異常

2017-04-24 11:01:59

MySQL數(shù)據(jù)庫架構(gòu)設(shè)計(jì)

2018-09-05 13:14:54

MySQLInnoDBMyISAM

2010-05-21 18:07:56

MySQL 表種類

2010-07-14 16:28:58

配線架

2010-11-26 13:58:48

MySQL字符串匹配

2010-07-13 10:47:18

Perl面向?qū)ο?/a>

2009-06-19 17:05:08

MVC框架Struts和Spri

2014-07-25 09:35:52

LinuxMySQL

2011-08-16 16:22:38

MySQL數(shù)據(jù)庫存儲引擎MyISAM

2010-11-23 12:39:05

MySQL InnoD

2018-12-03 09:03:18

SANNAS存儲系統(tǒng)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: www亚洲精品 | 欧美日高清 | 亚洲国产精品人人爽夜夜爽 | 亚洲一区亚洲二区 | 亚洲精品aⅴ | 欧美黄色网络 | 国产精品久久久久999 | 国产成人免费网站 | 91麻豆蜜桃一区二区三区 | 911网站大全在线观看 | av毛片在线播放 | 国产欧美在线 | 91操操操 | 久久一区二区免费视频 | 精品综合| 国产小视频在线 | 四虎永久| 欧美午夜精品理论片a级按摩 | 国产一区91精品张津瑜 | 久在线观看| 精品国产伦一区二区三区观看说明 | 99欧美精品 | 国产高清91 | 欧美一级特黄aaa大片在线观看 | 日本特黄a级高清免费大片 成年人黄色小视频 | 日韩成人在线电影 | 中文字幕乱码视频32 | 九九精品在线 | 色.com | 黄色大片免费网站 | 精品久久国产 | 欧美日韩在线一区 | 日韩在线 | 一区二区三区国产 | 亚洲精品中文字幕在线 | 成人激情视频免费观看 | 亚洲欧美一区二区三区视频 | 日韩欧美操 | 中文在线视频观看 | 鸳鸯谱在线观看高清 | 国产精品免费观看视频 |