哪有什么天生如此,只是我们天天坚持。 -------The best Zhiyuan
通过学习总结一下MySql中常用的存储引擎之MyISAM:
MyISAM是MySQL的默认数据库引擎(5.5版之前),由早期的ISAM(Indexed Sequential Access Method:有索引的顺序访问方法)所改良。
优点:优势在于占用空间小,处理速度快。缺点是
缺点:不支持事务处理(transaction)的完整性和并发性
组成
- .MYD
数据文件的扩展名为 (MYData) - .MYI (MYIndex)
索引文件的扩展名。 - .frm
存储表定义(记录表结构的并不是myisam特有的)
特性
-
并发性和锁级别
只支持表级锁,用户在操作myisam表时,select,update,delete,insert语句都会给表自动加锁,如果加锁以后的表满足insert并发的情况下,可以在表的尾部插入新的数据。 -
损坏修复
- 查看表是否损坏
CHECK TABLE t1;
-
修复表
repair table t1;
如果单纯执行REPAIR TABLE没有起到什么效果,那么可以选择另外两个选项:-
REPAIR TABLE EXTENDED
,速度比REPAIR TABLE
慢得多,但是可以修复99%的错误; -
REPAIR TABLE USE_FRM
,它会删除索引并利用table_name.frm文件中的描述重建索引,并通过table_name.MYD文件填充健对应的值。
-
- 查看表是否损坏
-
支持的索引类型
支持全文索引(FULLTEXT)
前缀索引 -
支持数据压缩
Myisam引擎支持对表的压缩,压缩后的空间上比压缩前会减少60%-70%,但是压缩后的表是只读的
命令myisampack
+-f
强制压缩
限制
版本 < MySql5.0 时默认表大小为4个G
如果存储大表 需要修改 `MAX_Rows` 和 `AVG_ROW_LENGTH`
版本 > MySql5.0 时默认支持为256TB (嗷嗷够用啊)
适用场景
-
非事务型应用。
它提供高速存储和检索,以及全文搜索能力。如果应用中需要执行大量的SELECT查询,那么MyISAM是更好的选择。 -
只读类应用
插入不频繁,查询非常频繁 -
空间类应用
如GPRS和做很多count 的计算
Shi Zhiyuan is always the best
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。