-
DML操作遵循ACID 模型, 及事务特性中的 commit,roolback,和crash-recovery能力来保护用户数据。
-
行级锁和Oracle风格的一致读取提高了多用户并发性和性能。
-
InnoDB中的表,根据主键排列磁盘上的数据以优化查询。每张表都有主键索引(也被成为聚簇索引)来组织数据,达到最小化主键查找的I/O查询次数。
-
为了保持数据完整性,InnoDB提供外键约束。通过外键,插入、更新和删除操作都会进行校验,已确保这些操作不会导致多表间数据不一致问题。
下面表格完整的描述了InnoDB存储引擎的特性:
特性 | 是否支持 |
---|---|
B-tree 索引 | 是 |
备份/时间点恢复 (在服务, 而不是存储引擎中实现) | 是 |
集群数据库支持 | 否 |
聚簇索引 | 是 |
数据压缩 | 是 |
数据缓存 | 是 |
数据加密 | 是 (server中通过加密函数实现; MySQL 5.7及以后版本,支持静态数据表空间加密.) |
外键支持 | 是 |
全文检索索引(Full-text search indexes) | 是 (InnoDB在MYSQL 5.6及后续版本支持全文索引.) |
空间数据类型支持(Geospatial data) | 是 |
地理空间索引支持(Geospatial indexing) | 是 (MySQL 5.7及以后版本支持.) |
哈希索引 | 否 (InnoDB内部利用hash索引实现自适应hash索引功能.) |
索引缓存 | 是 |
锁粒度 | 行 |
MVCC | 是 |
副本支持 (在服务, 而不是存储引擎中实现) | 是 |
存储限制 | 64TB |
T-树索引 | 否 |
事务 | 是 |
更新数据字典的统计信息 | 是 |