存储引擎:也叫表类型,指的是数据表的存储机制、索引方案等配套相关功能。
表类型
默认的服务器表类型,通过my.int可以配置
default-storage-engine = innodb;
在创建表,或者编辑表时,可以指定表的存储引擎:
利用表属性:engine 引擎类型 engine myisam engine innodb
//
alter table itcast_class engine myisam;
create table class(
room_id int primary key auto_increment,
room_no char(3)
) engine myisam character set utf8;
innodb&myisam区别
保存的文件方式不同:
myisam,一个表,三个文件
tbl_name.frm 结构 tbl_name.myd 数据 tbl_name.myi 索引
innodb:一个表,一个文件
tbl_name.frm 结构 所有的innodb表,都使用相同的innodb存储表空间在保存数据和索引
区别:
数据和索引保存的文件不同:myisam是分开保存,而innodb是保存到表空间
myisam支持索引压缩,而innodb索引和数据是绑定保存不压缩,体积大。
innodb 很多时候是行级锁,而myisam是表级锁,innodb的并发高。
innodb支持事务,外键,数据完整性约束要强。
innodb中不保存表的具体行数,也就是说,执行select count (*)from table时,innodb要扫描一遍整个表来计算有多少行,但是myisam只要简单的读出保存好的行数即可.注意的是,当count(*)语句包含where条件时,两种表的操作是一样的。
对于AUTO_INCREMENT类型的字段,innodb中必须包含只有该字段的索引,但是在myisam表中,可以和其他字段一起建立联合索引。
本文出自 “华惠芳哲” 博客,请务必保留此出处http://4706547.blog.51cto.com/4696547/1366017
原文:http://4706547.blog.51cto.com/4696547/1366017