mysql isam 食物_MySQL常用存储引擎之MyISAM
1. mysql 5.5之前版本默認存儲引擎
1.1 因為這個原因現(xiàn)在還有大量服務(wù)器在使用這myisam引擎的表
1.2 myisam是mysql大部分系統(tǒng)表和臨時表使用的存儲引擎
2. myisam存儲引擎表由myd和myi組成
2.1 myd存儲數(shù)據(jù)信息
2.2 myi存儲索引信息
2.3 frm記錄表結(jié)構(gòu)的,所有存儲引擎都有的
3. 特性
3.1 并發(fā)性與鎖級別
myisam使用的是表級鎖, 而不是行級鎖。這也就意味著對表數(shù)據(jù)進行修改時,需要對整個表進行加鎖。而在對表中的數(shù)據(jù)進行讀取時,也需要對所有表加共享鎖。所以,使用myisam存儲引擎的表,讀取和寫入這兩種操作是互斥的。當然,在一些情況下,當我們對表中的數(shù)據(jù)進行讀取時,也可以在表的末尾插入數(shù)據(jù)。因此,myisam對讀寫混合的并發(fā)性不是很好。如果知識制度的操作的話,就并發(fā)性而言,性能還是可以接受的。因為共享鎖并不會阻塞共享鎖。
3.2 表損壞修護
支持對意外關(guān)閉的表進行檢查和修護操作,這里提到的修護,并不是事務(wù)恢復。因為myisam并不是一種事物存儲引擎,所以它不可能提供事務(wù)恢復所需要的相關(guān)日志。所以注意了,對myisam表做數(shù)據(jù)恢復,可能會造成數(shù)據(jù)的丟失。對有問題的表可以使用
check table tablename 進行檢查
repair table tablename 進行修護
除了上訴命令,mysql還提供了修護工具,叫做myisamchk( 如果使用,則需要停止mysql服務(wù)),如果不停止使用這個工具,可能造成更大的損壞。
3.3 myisam表支持的索引類型
myisam表支持全文索引,是 mysql5.7之前唯一支持全文索引的官方存儲引擎。支持text或block等字段前500個字符的前綴索引,若果myisam是一張很大的只讀表的話,在表創(chuàng)建完,導入數(shù)據(jù)后,就不會在對表進行任何修改操作,那么我們可以對這樣的表進行壓縮操作,這樣可以減少磁盤io。
3.4 myisam表支持數(shù)據(jù)壓縮
對于表中數(shù)據(jù)壓縮是獨立進行壓縮的,所以在讀取單行數(shù)據(jù)的時候,不必對整個表來進行解壓
myisampack 壓縮表
4. 限制
4.1 版本< mysql5.0時默認表大小為4g
若果存儲大表則要修改 max_rows 和 avg_row_length , 這兩個數(shù)相乘的大小,就是表達到的大小。對于大表來說,修改這兩個參數(shù)會導致表重建,可能需要一些時間。
4.2 版本 >mysql5.0時默認支持為256tb
5. 適用場景
5.1 非事務(wù)型應(yīng)用
myisam本身時一種非事務(wù)型存儲引擎,也就是說myisam是不支持事務(wù)的。
5.2 只讀類應(yīng)用
因為可以對表進行壓縮,壓縮后只讀。
5.3 空間類應(yīng)用
在mysql5.7之前,myisam是唯一支持空間函數(shù)的存儲引擎。如果需要存儲空間類數(shù)據(jù),使用空間函數(shù),只能使用myisam存儲引擎。
總結(jié)
以上是生活随笔為你收集整理的mysql isam 食物_MySQL常用存储引擎之MyISAM的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jcb信用卡和visa区别
- 下一篇: Java千万数据导入mysql_java