快捷搜索: 王者荣耀 脱发

MySQL引擎详解(二)——MyISAM引擎特性

今天继续给大家介绍MySQL相关知识,本文主要内容是MySQL中MyISAM引擎的一些特性。

一、MyISAM引擎特点

MyISAM引擎是MySQL5.5版本(不含)之前的数据库所默认的数据表引擎。每一个采用MyISAM引擎的数据表在实际存储中都是由三个文件组成,分别是frm文件,MYD文件和MYI文件,文件后缀为上述三个,文件名与数据表名相同。一个典型的MyISAM类型的数据表如下图(红框部分)所示: 其中,frm文件保存表的结构,MYD保存表的数据,MYI保存表的索引文件,MYD和MYI与MyISAM引擎有很深的关联。 除此之外,MyISAM引擎的特点还有: 1、不支持事务。 2、表级锁定。 即发生数据更新时,会锁定整个表,以防止其他会话对该表中数据的同时修改所导致的混乱。这样做可以使得操作简单,但是会减少并发量。 3、读写互相堵塞。 在MyISM类型的表中,既不可以在向数据表中写入数据的同时另一个会话也向该表中写入数据,也不允许其他的会话读取该表中的数据。只允许多个会话同时读取该数据表中的数据。 4、只会缓存索引,不会缓存数据。 所谓缓存,就是指数据库在访问磁盘数据时,将更多的数据读取进入内存,这样可以使得当访问这些数据时,直接从内存中读取而不是再次访问硬盘。MyISAM可以通过key_buffer_size缓存索引,以减少磁盘I/O,提升访问性能。但是MyISAM数据表并不会缓存数据。 5、读取速度较快,占用资源较少。 6、不支持外键约束。 7、支持全文索引。

二、MyISAM引擎适用场景

由MyISAM的特性,我们就可以简单的列举MyISAM引擎适用场景了。 1、不需要事务支持的场景。 2、读取操作比较多,写入和修改操作比较少的场景。 3、数据并发量较低的场景。 4、硬件条件比较差的场景。 5、在配置数据库读写分离场景下,MySQL从库可以使用MyISAM索引。

三、MyISAM引擎调优思路

经验分享 程序员 微信小程序 职场和发展