存储引擎:也叫表类型,指的是数据表的存储机制,索引方案等配套相关功能。不同的引擎,由于处理方式不同,会带来不同的功能或者相应的优化,根据实际需求选择合理的引擎。
选择表的存储引擎的标准:
是否需要事务支持。
是否支持外键。
并发量的要求。
错误恢复处理。
是否支持某些功能。
表类型
默认的服务器表类型,通过my.ini可以配置:default-storage-engine=INNODB
在创建表,或者编辑表时,可以指定表的存储引擎:
利用表属性:engine 引擎类型
Engine myysiam
Engine innodb
create table room( room_id int primary key auto_increment, room_num char(3) ) engine myisam character set utf8; // engine innodb
Innodb&myisam区别
保存的文件的方式不同:
myisam,一个表,三个文件
Tbl_name.frm 结构
Tbl_name.myd 数据
Tbl_name.myi 索引
innodb:
一个表一个文件:
所有的innodb表,都使用相同的innodb存储空间在保存数据和索引。
最常用的存储引擎:
MyISAM,Indexed Sequential Access Method(有索引的顺序访问方法)
InnoDB
区别:
数据和索引的保存的文件不同:myisam是分开保存,而innodb是保存到表空间
myisam支持所有压缩,而innodb索引和数据是绑定保存不压缩,体积大。
innodb很多时候是行级锁,而myisam是表级锁,innodb的并发高。
innodb不支持fulltext类型的索引(新版本的innodb也支持)。
innodb支持事务,外键,数据完整性约束要强。而myisam不支持。