MySQL存储引擎

最近工作使用PHP操作MYSQL时遇到一个BUG 事务控制居然失效了,出现异常居然没有回滚数据.

后面经过别人提示是MySQL存储引擎的原因:

存储引擎:

mysql的存储引擎包括:MyISAM、InnoDB、BDB、MEMORY、MERGE、EXAMPLE、NDBCluster、ARCHIVE、CSV、BLACKHOLE、FEDERATED等,其中InnoDB和BDB提供事务安全表,其他存储引擎都是非事务安全表。
  最常使用的2种存储引擎:
  1.Myisam是Mysql的默认存储引擎,当create创建新表时,未指定新表的存储引擎时,默认使用Myisam。每个MyISAM在磁盘上存储成三个文件。文件名都和表名相同,扩展名分别是.frm(存储表定义)、.MYD(MYData,存储数据)、.MYI(MYIndex,存储索引)。数据文件和索引文件可以放置在不同的目录,平均分布io,获得更快的速度。
  2.InnoDB存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全。但是对比Myisam的存储引擎,InnoDB写的处理效率差一些并且会占用更多的磁盘空间以保留数据和索引。

查看系统支持的引擎:

show engines;

查看指定表的引擎:

show create table `table_name`;

修改表的存储引擎:

alter table `table_name` type=InnoDB;

 

其中有一张表的引擎使用的是MyISAM,将其修改为InnoDB引擎

posted @ 2018-09-30 09:20  苏亿  阅读(131)  评论(0编辑  收藏  举报