MYSQL中常见的存储引擎有InnoDB,MyISAM,Memory和Archive,默认使用的是InnoDB。不同的存储引擎在存储空间、事务处理、索引策略和锁结构等方面都存在一定的差异。
以下是各类存储引擎的比较:
特点 | InnoDB | MySIAM | Memory | Archive |
---|---|---|---|---|
存储空间 | 64TB | 256TB | RAM | 无限制 |
事务处理 | 支持 | 无 | 无 | 无 |
锁颗粒 | 行锁 | 表锁 | 表锁 | 行锁 |
MVCC | Y | N | N | N |
数据压缩 | N | 支持 | N | 支持 |
外键 | Y | N | N | N |
B树索引 | Y | Y | Y | N |
Hash索引 | N | Y | N | N |
全文索引 | Y | Y | N | N |
聚簇索引 | Y | N | N | N |
索引策略
- 聚簇索引:该索引的原理是关键字的值相近的元组其相应的物理位置相邻,一个表只支持一个聚簇索引并且不应该应用于字符串类型;在InnoDB中会以主键建立聚簇索引;