- 一、存储引擎的概念:
利用mysql创建表的时候,如果不制定存储引擎,则使用默认的存储引擎(在mysql命令行中使用show variables like 'table_type'查看)。
- 二、我们拿mysql5.1.37为例,介绍mysql的存储引擎
查看当前版本的mysql支持的搜索引擎
我使用的mysql支持的存储引擎有:memory、federated、MyISAM、BlackHole、MRG_MyISAM、CSV、archive、InnoDB(我的mysql默认支持InnoDB)
其中只有InnoDB支持事务机制,其他存储引擎不支持事务。
我们创建表的时候可以指定存储引擎,
create table t1(id int(2) primary key,
name varchar(20)
) engine MyISAM default charset gbk;
也可以使用DDL修改表的存储引擎(表的类型)alter table t1 engine=InnoDB。
我们主要讲解实际开发中使用的存储引擎
1.InnoDB特点
(1)这种存储引擎把自动增加列(auto_increment)设置成索引,并且如果是组合索引必须是组合索引的第一列
(2)唯一支持外键的存储引擎(虽然外键不经常用)
(3)支持事务,插入效率不高,有频繁插入操作的表不要选择
2.MyISAM
(1)适合对数据完整性没有要求,有频繁查询和插入的表适合
- 三、如何选择存储引擎
*InnoDB存储引擎的表进行hang锁,如果应用对数据完整性要求较高,并且删除和更新操作频繁适合这种模式