abstrait:Mysql是著名的關(guān)系型數(shù)據(jù)庫(kù)。其下面的關(guān)系數(shù)據(jù)庫(kù)表是用于存儲(chǔ)和組織信息的數(shù)據(jù)結(jié)構(gòu),可以將表理解為由行和列組成的表格,類似于Excel的電子表格的形式。有的表簡(jiǎn)單,有的表復(fù)雜,有的表根本不用來(lái)存儲(chǔ)任何長(zhǎng)期的數(shù)據(jù),有的表讀取時(shí)非??欤遣迦霐?shù)據(jù)時(shí)去很差;而我們?cè)趯?shí)際開(kāi)發(fā)過(guò)程中,就可能需要各種各樣的表,不同的表,就意味著存儲(chǔ)不同類型的數(shù)據(jù),數(shù)據(jù)的處理上也會(huì)存在著差異,那么。對(duì)于MySQL來(lái)說(shuō),它提供
Mysql是著名的關(guān)系型數(shù)據(jù)庫(kù)。其下面的關(guān)系數(shù)據(jù)庫(kù)表是用于存儲(chǔ)和組織信息的數(shù)據(jù)結(jié)構(gòu),可以將表理解為由行和列組成的表格,類似于Excel的電子表格的形式。有的表簡(jiǎn)單,有的表復(fù)雜,有的表根本不用來(lái)存儲(chǔ)任何長(zhǎng)期的數(shù)據(jù),有的表讀取時(shí)非??欤遣迦霐?shù)據(jù)時(shí)去很差;而我們?cè)趯?shí)際開(kāi)發(fā)過(guò)程中,就可能需要各種各樣的表,不同的表,就意味著存儲(chǔ)不同類型的數(shù)據(jù),數(shù)據(jù)的處理上也會(huì)存在著差異,那么。對(duì)于MySQL來(lái)說(shuō),它提供了很多種類型的存儲(chǔ)引擎,我們可以根據(jù)對(duì)數(shù)據(jù)處理的需求,選擇不同的存儲(chǔ)引擎,從而最大限度的利用MySQL強(qiáng)大的功能。
MySQL有很多的數(shù)據(jù)庫(kù)引擎,單一般也就用MyISAM和InnoDB?,F(xiàn)在就來(lái)分析下MySQL最常用的兩種存儲(chǔ)引擎 innodb和Myisam的差別,以便大家能夠在使用的時(shí)候清楚知道應(yīng)使用哪種!
1. 事務(wù)處理(一個(gè)事務(wù)是一個(gè)連續(xù)的一組數(shù)據(jù)庫(kù)操作):
innodb 支持事務(wù)功能,myisam 不支持。
Myisam 的執(zhí)行速度更快,性能更好。
2. 增刪改查:
如果執(zhí)行大量的SELECT,MyISAM是更好的選擇,MyISAM會(huì)比Innodb 的查詢速度快。
InnoDB:如果你的數(shù)據(jù)執(zhí)行大量的INSERT或UPDATE,出于性能方面的考慮,應(yīng)該使用InnoDB表。
3. 鎖機(jī)制不同:
InnoDB 為行級(jí)鎖,myisam 為表級(jí)鎖。
注意:當(dāng)數(shù)據(jù)庫(kù)無(wú)法確定,所找的行時(shí),也會(huì)變?yōu)殒i定整個(gè)表。
4. 查詢表的行數(shù)不同:
MyISAM:SELECT count(*) from table,MyISAM只要簡(jiǎn)單的讀出保存好的行數(shù),注意的是,當(dāng)count(*)語(yǔ)句包含 where條件時(shí),兩種表的操作是一樣的
InnoDB : InnoDB 中不保存表的具體行數(shù),也就是說(shuō),執(zhí)行SELECT count(*) from table時(shí),InnoDB要掃描一遍整個(gè)表來(lái)計(jì)算有多少行
5. 物理結(jié)構(gòu)不同
MyISAM :每個(gè)MyISAM在磁盤(pán)上存儲(chǔ)成三個(gè)文件。第一個(gè)文件的名字以表的名字開(kāi)始,擴(kuò)展名指出文件類型。
文件存儲(chǔ)表定義.frm
數(shù)據(jù)文件的擴(kuò)展名為.MYD (MYData)。
索引文件的擴(kuò)展名是.MYI (MYIndex)
InnoDB:基于磁盤(pán)的資源是InnoDB表空間數(shù)據(jù)文件和它的日志文件,InnoDB 表的大小只受限于操作系統(tǒng)文件的大小,一般為 2GB。
6、使用場(chǎng)景不同
MyISAM是默認(rèn)使用的。但由于MyISAM不支持外鍵的約束,而且MyISAM會(huì)在添加或者更新數(shù)據(jù)的時(shí)候?qū)⒄麄€(gè)表鎖住,所以使用MyISAM更多的是你在建立一個(gè)非常簡(jiǎn)單的數(shù)據(jù)庫(kù)或者只是實(shí)驗(yàn)性的!
如果要保證數(shù)據(jù)完整,還想避免以后擴(kuò)展性能上不會(huì)有很大的問(wèn)題,那就用InnoDB!