做的好看的網(wǎng)站免費(fèi)網(wǎng)站優(yōu)化排名
一、MyISAM介紹
1、介紹:
MyISAM引擎是MySQL5.5版本之前的數(shù)據(jù)庫所默認(rèn)的數(shù)據(jù)表引擎。每一個(gè)采用MyISAM引擎的數(shù)據(jù)表在實(shí)際存儲(chǔ)中都是由三個(gè)文件組成,分別是frm文件保存表的結(jié)構(gòu),MYD文件保存表的數(shù)據(jù)、MYI文件保存表的索引,文件后綴為上述三個(gè),文件名與數(shù)據(jù)表名相同。MYD和MYI與MyISAM引擎有很深的關(guān)聯(lián)。
說明:從MySQL8.0開始,它就可以被稱為過時(shí)了。 MySQL已經(jīng)確保在使用InnoDB時(shí),MyISAM可以完成的所有工作都可以完成,因此目前,只有當(dāng)希望簡單的COUNT(*)查詢更快時(shí),MyISAM才非常有用。這樣的查詢會(huì)更快,因?yàn)镸yISAM將表記錄數(shù)數(shù)字存儲(chǔ)在表元數(shù)據(jù)中–其他 MySQL存儲(chǔ)引擎則沒有。
2、特點(diǎn):
(1)不支持事務(wù)。
(2)表級鎖定。 即發(fā)生數(shù)據(jù)更新時(shí),會(huì)鎖定整個(gè)表,以防止其他會(huì)話對該表中數(shù)據(jù)的同時(shí)修改所導(dǎo)致的混亂。這樣做可以使得操作簡單,但是會(huì)減少并發(fā)量。
(3)讀寫互相堵塞。 在MyISM類型的表中,既不可以在向數(shù)據(jù)表中寫入數(shù)據(jù)的同時(shí)另一個(gè)會(huì)話也向該表中寫入數(shù)據(jù),也不允許其他的會(huì)話讀取該表中的數(shù)據(jù)。只允許多個(gè)會(huì)話同時(shí)讀取該數(shù)據(jù)表中的數(shù)據(jù)。
(4)只會(huì)緩存索引,不會(huì)緩存數(shù)據(jù)。 所謂緩存,就是指數(shù)據(jù)庫在訪問磁盤數(shù)據(jù)時(shí),將更多的數(shù)據(jù)讀取進(jìn)入內(nèi)存,這樣可以使得當(dāng)訪問這些數(shù)據(jù)時(shí),直接從內(nèi)存中讀取而不是再次訪問硬盤。MyISAM可以通過key_buffer_size緩存索引,以減少磁盤I/O,提升訪問性能。但是MyISAM數(shù)據(jù)表并不會(huì)緩存數(shù)據(jù)。
(5)讀取速度較快,占用資源較少。
(6)不支持外鍵約束。
(7)支持三種類型的索引:B-Tree、R-Tree、Full-text全文索引。