一般地,mysql的存储引擎主要有以下两种:myISAM和InnoDB。
myISAM
myISAM保存数据表时主要依靠三个文件:.frm
、.MYD
和.MYI
三个文件
InnoDB
存储数据时除了以上三个文件,还有一个ibd文件。ibd是一个单表表空间文件,每个表使用一个表空间文件,存放数据库表信息和索引。
ibdate1、ibdate2:系统的表空间文件,存储InnoDB系统信息和用户数据库表数据和索引、所有表公用。
各种存储引擎的区别
特点 | Myisam | InnoDB | BOB | Memory | Archive |
---|---|---|---|---|---|
批量插入的速度 | 高 | 低 | 高 | 高 | 非常高 |
事务安全 | 支持 | 支持 | |||
全文索引 | 支持 | ||||
锁机制 | 表锁 | 行锁 | 叶锁 | 表锁 | 行锁 |
存储限制 | 没有 | 64TB | 没有 | 有 | 没有 |
B数索引 | 支持 | 支持 | 支持 | 支持 | |
哈希索引 | 支持 | 支持 | |||
集群索引 | 支持 | ||||
数据索引 | 支持 | 支持 | |||
索引缓存 | 支持 | 支持 | 支持 | ||
数据可压缩 | 支持 | 支持 | |||
空间使用 | 低 | 高 | 低 | N/A | 非常低 |
内存使用 | 低 | 高 | 低 | 中等 | 低 |
支持外键 | 支持 |