一:数据库引擎的定义
正式来说,数据库引擎是用于 存储、处理和保护数据的核心服务。利用数据库引擎可以 控制访问权限并快速处理事务,从而满足企业内大多数需要 处理大量数据的应用程序的要求,这包括 创建用于存储数据的表和用于查看、管理和保护数据安全的数据库对象(如索引、视图和存储过程)。
1:设计并创建数据库以保存系统所需要的关系或xml文档
2:实现系统以访问或更改数据库中存储的数据,实现网站或使用数据的应用程序,包括使用SOL Server工具和使用工具已使用数据的过程。
3:为单位或用户部署实现的系统
4:提供日常管理支持优化数据库的性能。
三:mysql引擎的类别
ISAM的结构如下图:
In弄DB数据库引擎是早就Mysql灵活性的技术的直接产品,这项技术就是mysql+api,在使用mysql的时候,你所面对的每一个挑战几乎都源于isam和myisam数据库引擎不支持事务处理也不支持外来键。
InnoDB的特点
InnoDB要比isam和myisam引擎慢
innoDB为mysql表提供了acid事务支持,系统崩溃修复能力和多版本并发控制的行级锁,该引擎提供了行级锁和外键约束,所以InnoDB是事务型数据库首选的引擎。
采用B+树实现,索引与数据存储在同一文件中。
四:InnoDB与MyISAM的对比
1:存储结构
innoDB使用共享表空间存储方式时,所有数据存在一个单独的表空间里面,而这个表空间是由很多个文件组成的,一个表可以跨越多个文件存在,InnoDB表空间的最大限制为64TB,innoDB的表限制基本上在64TB左右,当然这个大小是包括这个表所有索引和其它相关数据。使用单独表空间存储方式时,每个表的数据以一个单独的文件来存储,这个单独文件存放,单表限制了文件系统的大小。
MyISAM中每个表被存在分离的文件中,每个MyISAM中的表在磁盘上存储成三个文件,每一个文件的名字均以表的名字开始,扩展名指出文件类型:.frm文件存储表定义;MYD文件存储表的数据;MYI文件存储表的索引。
2:存储空间
InnoDB存储引擎为在主内存建立其专用的缓冲池来缓存数据和索引,所以需要更多的内存和存储。
MyISAM可被压缩,存储空间较小。支持三种不同的存储格式:静态表(默认,但是注意数据末尾不能有空格,会被去掉)、动态表、压缩表。
MyISAM引擎支持对表的压缩,压缩后的空间上比压缩前会减少60%-70%,但是压缩后的表是只读的,这个要注意,根据使用场景判断是否需要压缩。
3:索引与数据
索引(Index)是帮助MySQL高效获取数据的数据结构。MyIASM和Innodb都使用了树这种数据结构做为索引




InnoDB中不保存表的具体行数,执行select count(*) from table 时,InnoDB要扫描一遍增高饿表来计算有多少行。
myISAM中存储了表的行数,于是select count(*) from table时只需要直接取已经保存好的值而不需要进行全表扫描。
5:锁
InnoDB免费的方案可以是拷贝数据文件、备份 binlog,或者用 mysqldump,在数据量达到几十G的时候就相对痛苦了。
MyISAM引擎中的数据是以文件的形式存储,所以在跨平台的数据转移中会很方便。在备份和恢复时可单独针对某个表进行操作
五:mysql数据引擎更换方式
1:查看当前数据库支持的引擎和默认的数据库引擎
show engines;
2:更改数据库引擎
2.1:更改方式1:修改配置文件my.ini
将my-small。ini另存为my.ini,在default-storage-engine=InnoDB
,重启服务,数据库默认引擎更改为了InnoDB。
2.2更改方法2:在键表的时候指定
create table mytbl(id int primary key,name varchar(50)) type=MyISAM
2.3 :更改方式3:建表后更改
alter table mytbl2 type =InnoDB;
3:查看修改结果
show create table table_name;
show table status from table_name;