MySQL引擎总结
查看引擎情况:show engines;
查看默认的数据库配置:show variables like 'default_storage_engine';
更改数据库引擎:修改配置文件my.ini,[mysqld]最后添加为上default-storage-engine=InnoDB,重启服务;
修改某张表的引擎: alter table table_name engine = InnoDB;
主要数据库引擎介绍:
a) MyISAM: 不支持事务,不支持外键,访问速度很快,每个MyISAM在磁盘上存储成3个文件(frm(存储表定义)、MYD(MYData,存储数据)、MYI(MYIndex,存储索引)),
b) INNODB: MySQL5.5以后默认使用该数据库引擎,它提供了具有提交、回滚和崩溃恢复能力的事务安全。但是对比MyISAM的存储引擎,InnoDB写的处理效率差一些并且会占用更多的磁盘空间以保留数据和索引。
c) MEMORY: 使用存在内存中的内容来创建表。每个MEMORY表实际对应一个磁盘文件,格式是.frm。MEMORY类型的表访问非常快,因为它的数据是放在内存中的,并且默认使用HASH索引,但是一旦服务器关闭,表中的数据就会丢失,但表还会继续存在。
MyISAM与INNODB的主要区别:
a) MyISAM是非事务安全型的,而InnoDB是事务安全型的;
b) MyISAM锁的粒度是表级,而InnoDB支持行级锁定;
c) MyISAM支持全文类型索引,而InnoDB不支持全文索引;
d) MyISAM相对简单,所以在效率上要优于InnoDB,小型应用可以考虑使用MyISAM;
e) MyISAM表是保存成文件的形式,在跨平台的数据转移中使用MyISAM存储会省去不少的麻烦;
f) InnoDB表比MyISAM表更安全,可以在保证数据不会丢失的情况下,切换非事务表到事务表(alter table tablename type=innodb)。

浙公网安备 33010602011771号