1、MySQL存储引擎的概念
存储 引擎其实就是如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。因为在关系数据库中数据以表的形式存储的,所以存储引擎也可以称为表类型。MySQL提供了多种存储引擎。
1.1查询MySQL中的存储引擎
查询语句:show engines;
查询结果如下:
查询MySQL的默认存储引擎:
查询语句:show variables like'storage_engine%';
查询结果如下:
2、InnoDB存储引擎
InnoDB存储引擎被一些重量级的Internet公司采用,如雅虎、slashdot和Google,为用户提供了一个强大的解决方案。InnoDB给MySQL的表提供了事务、回滚、奔溃修复能力和并发控制的事务安全。InnoDB是MySQL上第一个提供外键约束的表引擎。InnoDB引擎中支持自动增长列auto_increment。自动增长列的值不能为空,且值必须唯一。MySQL中规定自增列必须为主键。
InnoDB存储引擎中支持外键,外键所在的表为主表,外键所依赖的表为父表。InnoDB存储引擎中,创建的表的结构存储在.frm文件中,数据和索引存储在innodb_data_home_dir和innnodb_data_file_path表空间中。缺点是读写效率稍差,占用的数据空间相对较大。