MySQL 存储引擎之 MyISAM

sqlercn | | 访问(79)

  MyISAM是默认存储引擎。它基于更老的ISAM代码,但有很多有用的扩展。(注意MySQL 5.1不支持ISAM)。 每个MyISAM在磁盘上存储成三个文件,每一个文件的名字均以表的名字开始,扩展名指出文件类型。

  .frm 文件存储表定义;

  ·MYD(MYData) 文件存储表的数据;

  .MYI(MYIndex) 文件存储表的索引。

  使用场景

  1、非事务型应用(MyISAM不支持事务处理)

  2、只读类应用(读多写少的项目)

  3、空间类应用(坐标定位)

  MyISAM的索引和数据是分开的,并且索引是有压缩的,内存使用率就对应提高了不少,能加载更多索引。

  select count(*) 和order by 是最频繁的,大概能占了整个sql总语句的60%以上的操作,而这种操作Innodb其实也是会锁表的,很多人以为Innodb是行级锁,那个只是where对它主键是有效,非主键的都会锁全表的。