mysql第一天表类型(存储引擎)的选择

  • 一、存储引擎的概念:
存储引擎是mysql的一个重要特性,它代表了数据库如何存储数据、索引数据、是否使用事务等。
利用mysql创建表的时候,如果不制定存储引擎,则使用默认的存储引擎(在mysql命令行中使用show variables like 'table_type'查看)。




  • 二、我们拿mysql5.1.37为例,介绍mysql的存储引擎
利用show engines \G或者show variables like 'have_'
查看当前版本的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)适合对数据完整性没有要求,有频繁查询和插入的表适合




  • 三、如何选择存储引擎
*MyISAM存储引擎的表进行表锁,如果应用是查询和插入为主,对事务完整性和并发性要求不是很高则使用这种模式
*InnoDB存储引擎的表进行hang锁,如果应用对数据完整性要求较高,并且删除和更新操作频繁适合这种模式

猜你喜欢

转载自lwclover.iteye.com/blog/1636274
今日推荐