存储引擎
概念
MySQL中的数据用各种不同的技术存储在文件中,每一种技术都是使用不同的存储机制索引技巧、锁定水平并最终提供不同的功能和能力,这些不同的技术以及配套的功能在mysql中称为存储引擎
特点
不支持事务,也不支持外键约束,只支持全文索引,数据文件和索引文件是分开保存的
访问速度快,对事务完整性没有要求
适合查询、插入为主的应用
常用存储引擎
MyISAM
存储格式
静态表(固定长度)
静态表的默认的存储格式,静态表中的字段都是非可变字段,这样每个记录都是固定长度的,这种存储方式的有点是存储非常迅速,容易缓存,出现故障容易恢复;缺点是占用的空间通常比动态多
动态表
动态表包含可变字段,记录不是固定长度,这样存储的优点是占用空间较少,但是频繁的更新、删除记录会产生碎片,需要定期执行OPTIMIZE TABLE 或 MYISAMCHK -r命令改善性能,并且出现故障的时候恢复相对比较困难
压缩表
压缩表由myisam工具创建,占据非常小的空间,因为每条记录都是被单独压缩的,所以只有非常小的访问开支
llnoDB
特点
支持事务,支持四个事务隔离级别
读取阻塞与事务隔离级别相关
能非常高效的缓存索引和数据
表与主键以簇的方式存储
支持分区、表空间、类似oracle数据库
支持外键约束,5.5前不支持全文索引,5.5之后支持全文索引
引擎的查看
系统支持的引擎
表使用的存储引擎
第一种方法
第二种方法
修改存储引擎
alter table 修改
配置文件修改
创建表时指定
小结
MyISAM适合在无事务要求,读写并发少的场景使用
InnoDB适合在有事务要求,读写并发多的场景使用