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)。

 

posted @ 2017-02-14 16:10  hq_sunshine  Views(170)  Comments(0)    收藏  举报