mysql体系结构
插件式存储引擎,将数据的查询和存储相分离.每一款存储引擎都有各自的优缺点.可以灵活选用
架构: 客户端 -> mysql服务层 -> 存储引擎层
存储引擎是针对表,不是针对库,同一库中的不同的表,可以使用不同的存储引擎.(但是不建议这样做),存储引擎的不同会对性能产生直接的影响.
mysql常用的存储引擎之MyISAM
mysql5.5之前版本默认的存储引擎
MYISAM存储引擎表由MYD(数据文件)和MYI(索引文件)组成,另外还有一个frm文件,并非myisam特有,是所有存储引擎都有的文件,用于存储表结构
myisam特性
1.并发性与锁级别
使用的是表级锁,读取数据的时候也是对全表加共享锁.读取和写入是互斥的.
读写并发场景性能不佳
2.表损坏恢复
check table tableName;
repair table tableName;
3.myisam支持的索引类型
支持全文索引,并且是在5.7之前唯一支持全文索引的官方存储引擎
支持对text和blob字段简历前500字符的前缀索引
4.myisam支持对只读表的数据压缩,减少磁盘io(测试使用mariadb,发现压缩之后仍然可以插入数据,myisam.OLD还在一直变大)
myisampack -b -f tablename.MYI
myisam限制
不支持事务
5.0之前的版本默认表大小是4G
5.0之后的版本默认表大小是256TB
myisam适用场景
1.非事务型应用
2.只读类应用
3.空间类应用 myisam是5.7之前唯一支持空间函数的存储引擎,例如gps数据