摘要:所以,使用存儲(chǔ)引擎的表,讀取和寫入這兩種操作是互斥的。版本時(shí)默認(rèn)支持為適用場(chǎng)景非事務(wù)型應(yīng)用本身時(shí)一種非事務(wù)型存儲(chǔ)引擎,也就是說是不支持事務(wù)的。空間類應(yīng)用在之前,是唯一支持空間函數(shù)的存儲(chǔ)引擎。
1. mysql 5.5之前版本默認(rèn)存儲(chǔ)引擎 1.1 因?yàn)檫@個(gè)原因現(xiàn)在還有大量服務(wù)器在使用這myisam引擎的表 1.2 myisam是mysql大部分系統(tǒng)表和臨時(shí)表使用的存儲(chǔ)引擎 2. myisam存儲(chǔ)引擎表由myd和myi組成 2.1 myd存儲(chǔ)數(shù)據(jù)信息 2.2 myi存儲(chǔ)索引信息 2.3 frm記錄表結(jié)構(gòu)的,所有存儲(chǔ)引擎都有的 3. 特性 3.1 并發(fā)性與鎖級(jí)別
myisam使用的是表級(jí)鎖, 而不是行級(jí)鎖。這也就意味著對(duì)表數(shù)據(jù)進(jìn)行修改時(shí),需要對(duì)整個(gè)表進(jìn)行加鎖。而在對(duì)表中的數(shù)據(jù)進(jìn)行讀取時(shí),也需要對(duì)所有表加共享鎖。所以,使用myisam存儲(chǔ)引擎的表,讀取和寫入這兩種操作是互斥的。當(dāng)然,在一些情況下,當(dāng)我們對(duì)表中的數(shù)據(jù)進(jìn)行讀取時(shí),也可以在表的末尾插入數(shù)據(jù)。因此,myisam對(duì)讀寫混合的并發(fā)性不是很好。如果知識(shí)制度的操作的話,就并發(fā)性而言,性能還是可以接受的。因?yàn)楣蚕礞i并不會(huì)阻塞共享鎖。
3.2 表損壞修護(hù)支持對(duì)意外關(guān)閉的表進(jìn)行檢查和修護(hù)操作,這里提到的修護(hù),并不是事務(wù)恢復(fù)。因?yàn)閙yisam并不是一種事物存儲(chǔ)引擎,所以它不可能提供事務(wù)恢復(fù)所需要的相關(guān)日志。所以注意了,對(duì)myisam表做數(shù)據(jù)恢復(fù),可能會(huì)造成數(shù)據(jù)的丟失。對(duì)有問題的表可以使用
check table tablename 進(jìn)行檢查 repair table tablename 進(jìn)行修護(hù)
除了上訴命令,mysql還提供了修護(hù)工具,叫做myisamchk( 如果使用,則需要停止mysql服務(wù)),如果不停止使用這個(gè)工具,可能造成更大的損壞。
3.3 myisam表支持的索引類型myisam表支持全文索引,是 mysql5.7之前唯一支持全文索引的官方存儲(chǔ)引擎。支持text或block等字段前500個(gè)字符的前綴索引,若果myisam是一張很大的只讀表的話,在表創(chuàng)建完,導(dǎo)入數(shù)據(jù)后,就不會(huì)在對(duì)表進(jìn)行任何修改操作,那么我們可以對(duì)這樣的表進(jìn)行壓縮操作,這樣可以減少磁盤io。
3.4 myisam表支持?jǐn)?shù)據(jù)壓縮對(duì)于表中數(shù)據(jù)壓縮是獨(dú)立進(jìn)行壓縮的,所以在讀取單行數(shù)據(jù)的時(shí)候,不必對(duì)整個(gè)表來進(jìn)行解壓
myisampack 壓縮表4. 限制 4.1 版本< mysql5.0時(shí)默認(rèn)表大小為4g
若果存儲(chǔ)大表則要修改 max_rows 和 avg_row_length , 這兩個(gè)數(shù)相乘的大小,就是表達(dá)到的大小。對(duì)于大表來說,修改這兩個(gè)參數(shù)會(huì)導(dǎo)致表重建,可能需要一些時(shí)間。
4.2 版本 >mysql5.0時(shí)默認(rèn)支持為256tb 5. 適用場(chǎng)景 5.1 非事務(wù)型應(yīng)用myisam本身時(shí)一種非事務(wù)型存儲(chǔ)引擎,也就是說myisam是不支持事務(wù)的。
5.2 只讀類應(yīng)用因?yàn)榭梢詫?duì)表進(jìn)行壓縮,壓縮后只讀。
5.3 空間類應(yīng)用在mysql5.7之前,myisam是唯一支持空間函數(shù)的存儲(chǔ)引擎。如果需要存儲(chǔ)空間類數(shù)據(jù),使用空間函數(shù),只能使用myisam存儲(chǔ)引擎。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/28962.html
摘要:所以我們?nèi)绻褂孟到y(tǒng)表空間進(jìn)行表數(shù)據(jù)的存儲(chǔ),所面臨的問題是無法很容易的收縮系統(tǒng)文件,造成大量的空間浪費(fèi),并且會(huì)產(chǎn)生大量的磁盤碎片,從而降低了系統(tǒng)性能。 1. mysql 5.5及之后版本默認(rèn)存儲(chǔ)引擎 ??為不了解存儲(chǔ)引擎的數(shù)據(jù)庫使用者,提供了很大的便利,因?yàn)閕nnodb適應(yīng)大部分應(yīng)用場(chǎng)景。 ??和myisam不同的是,innodb是一種事務(wù)型存儲(chǔ)引擎。也就是說,innodb是支持事務(wù)的...
閱讀 2069·2021-11-16 11:45
閱讀 569·2021-11-04 16:12
閱讀 1369·2021-10-08 10:22
閱讀 840·2021-09-23 11:52
閱讀 4128·2021-09-22 15:47
閱讀 3513·2021-09-22 15:07
閱讀 486·2021-09-03 10:28
閱讀 1730·2021-09-02 15:21