MYSQL 存储引擎
MyISAM
Mysql 5.1 之前的默认存储引擎。其中提供了大量的特性,包括全文索引,压缩,空间函数等。但MyIsam 不支持事务,也不支持行锁,同时崩溃后不能安全恢复。但如果只读数据,表比较小,可以手动修复的话,它依然是一个很好的存储引擎。
MyISAM的存储会放在两个文件中,一个是数据文件,一个是索引文件。分别为.MYD和 .MYI 两个扩展。但文件受限于磁盘空间和操作系统中单个文件的最大尺度。如果想要修改表大小可以通过修改表的MAX_ROWS和 AVG_ROW_LENGTH 两个选项值,两个值相乘就是表可达到的最大大小。但是修改这两个值可能会造成表的数据失效和索引失效,可能会花费大量的时间(以Mysql 5.0 为例)。
MyISAM的特性
加锁和并发: MyISAM 会对整个表加锁,而不是对行加锁,读取时会把需要使用的所有表都加上共享锁。写入时会加排他锁。但在表有读取查询的同时,也可以对表进行插入操作(这被称为并发插入)。
修复:手动修改和检查操作。执行表的修复可能会造成表数据的丢失,而且修复过程很慢。 通过CHECK TABLE mytable 检查表错误。 PEPAIR TABLE mytable 进行修复。如果mysql 服务关闭,可以借助工具。
索引:MyISAM 支持全文索引,基于分词创建的索引。
延迟更新索引键:在创建MyISAM 表时,如果指定了DELAY_KEY_WRITE 选项。在每个修