MyISAM是5.1.X及以前版本到的默认引擎。每个以MyISAM为引擎的库表由3个文件组成,分别为:
xxx.MYD #保存表的数据;
xxx.MyI #保存表的索引;
xxx.frm #保存表的定义。
- 特点:
1)不支持事务。
2)表级锁,数据写入时锁定整张表。实现成本相对较低。
3)读写互阻,及写入数据时不能读取;读取数据时不能写入。
4)缓存索引。减少磁盘IO,提高访问性能;但是只缓存索引,不缓存数据。
5)读取速度快,占用资源少。
6)支持全文索引,不支持外键约束。
7)MyISAM引擎是MySQL5.5.X之前版本的默认数据库引擎。 - 适用的业务场景:
1)不需要事务支持的业务。
2)相对于数据写入,数据读取较多的应用。或者单纯读取数据较多,或单纯数据写入较多的业务。
3)读写并发访问较少的业务。纯读取或纯写入的高并发,也适用。
4)数据修改相对较少的业务。
5)对硬件一致性要求不是非常高的业务。
6)硬件资源比较差的机器。
7)读写分离的MySQL从库。 - 引擎调优
1)设置合适的索引。
2)调整读写优先级。
3)启用延迟插入,改善大批量吸入性能。
4)尽量顺序操作,使insert数据都写入尾部,减少阻塞。
5)分解大的和时间长的SQL操作,降低单个操作阻塞时间。
6)降低并发数。
7)使用memcached等缓存服务器,提高静态数据的访问效率。
8)网站动态数据静态化,减少对数据库的访问。
9)在主从同步模式中,主库使用Innodb引擎,从库使用MyISAM引擎。(实际使用中不推荐这种模式)