存储引擎
引擎 | 特性 | 文件 |
---|---|---|
InnoDB | 默认,支持事务,支持外键,支持行锁和表锁 | .frm 文件存储表结构 .ibd 文件存储数据和索引 |
MyISAM | 不支持事务,不支持外键,只支持表锁不支持行锁 专门维护了一个常量保存每个表的总记录数(count 很快) MyISAM 强调的是性能,所以性能上优于InnoDB,但安全性和并发性较低 |
.frm 文件存储表结构 .MYD 文件存储数据 .MYI 文件存储索引 |
Memory | 数据存在内存中,所以性能上来看是最好的,缺点也很明显,一旦宕机数据就没了 | 只有表结构文件(只有 frm 文件) |
索引
索引是一种数据结构,目的是提高检索数据的效率,减少磁盘I/O,也是一个文件存放在磁盘中(Memery 这种引擎数据都在内存中,索引也不可能有实质的文件了)
有利有弊,索引也是需要维护的,所以索引越多维护的成本也增大
按照不同的规则可以划分出不同的类型,比如按照字段个数:单列索引,复合索引;是否主键:主键索引,非主键索引。按照索引的数据结构上又能分为:聚簇索引和非聚簇索引