赞
踩
存储引擎就是指表的类型以及表在计算机上的存储方式。
MySQL 中常用的四种存储引擎分别是:MyISAM、InnoDB、MEMORY、ARCHIVE。
MySQL 5.5 版本后默认的存储引擎为InnoDB。
InnoDB给MySQL的表提供了事务处理、回滚、崩溃修复能力和多版本并发控制的事务安全。在MySQL从3.23.34a开始包含InnnoDB。它是MySQL上第一个提供外键约束的表引擎。而且InnoDB对事务处理的能力,也是其他存储引擎不能比拟的。靠后版本的MySQL的默认存储引擎就是InnoDB。
InnoDB存储引擎总支持AUTO_INCREMENT。MySQL中规定自增列必须为主键。
InnoDB还支持外键(FOREIGN KEY)。外键所在的表叫做子表,外键所依赖(REFERENCES)的表叫做父表。父表中被字表外键关联的字段必须为主键。当删除、更新父表中的某条信息时,子表也必须有相应的改变,这是数据库的参照完整性规则。
InnoDB存储引擎完全与MySQL服务器整合,InnoDB存储引擎为在主内存中缓存数据和索引而维持它自己的缓冲池。
InnoDB将它的表和索引在一个逻辑表空间中(就是索引的key和data放在一起,聚集索引),表空间可以包含数个文件(或原始磁盘文件)。这与MyISAM表不同,比如在MyISAM表中每个表被存放在分离的文件中(索引的key和data不放在一起,而data存的是地址的指针,非聚集索引)。InnoDB表可以是任何尺寸,即使在文件尺寸被限制为2GB的操作系统上
InnoDB中,创建的表的表结构存储在.frm文件中(我觉得是frame的缩写吧)。数据和索引存储在innodb_data_home_dir和innodb_data_file_path定义的表空间中。
优点:提供了良好的事务处理、崩溃修复能力和并发控制。
缺点:占用的数据空间相对较大。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。