新安装的Mysql5.5数据库使用mybatis提示插入数据成功而且主键已经自增,可是数据表中没有数

    通过查询是由于在4.0版本以后新推出的数据引擎InnoDB与MyIASM之间的差异,改成MyIASM便可具体介绍参照。 插入数据的时候发现一切正常, 但数据并未插入数据库,甚是奇怪,后来发如今数据库中主键一直在增长,也就是说数据已经提交到数据库,主键自增之后并未插入。后来将表结构从InnoDB改成了MyIASM就能够了。查了一下Mysql的7种表结构,描述以下: sql

DBD Berkeley DB(DBD)表是支持事务处理的表,由Sleepycat软件公司开发。它提供MySQL用户期待已久的功能事务控制。事务控制在任何数据库系统中都是一个极有价值的功能,由于它们确保一组命令能成功地执行或回滚。 HEAP HEAP表是MySQL中存取数据最快的表。这是由于他们使用存储在动态内存中的一个散列索引,不过若是MySQL或服务器崩溃,这些内存数据将会丢失。 ISAM ISAM表是早期MySQL版本的缺省表类型,直到MyIASM开发出来。建议不要再使用它。 MERGE MERGE是一个有趣的新类型,在3.23.25以后出现。一个MERGE表其实是又一个MyISAM表的集合,合并而成的一个表,主要是为了效率的考虑,由于这样不只仅能够提升速度、搜索效率、修复效率并且还节省了磁盘空间。 MyIASM MyIASM基于了IASM代码,应该能够说是IASM的衍生品,不过增长了很多有用的扩展。它是MySQL的默认数据表类型,基于了传统的ISAM类型,ISAM是Indexed Sequential Access Method(有索引的顺序访问方法)的缩写,通常来讲,它是存储记录和文件的标准方法。与其余存储引擎比较,MyISAM具备检查和修复表格的大多数工具。ISAM表格能够被压缩,并且它们支持全文搜索,不过它们是事务不安全的,并且也不支持外键。若是事务回滚将会形成不彻底回滚,从而不具有原子性。因此假如忽略事务以及访问并发性的话,而且须要执行大量的SELECT检索语句的话,MyISAM将是最好的选择。 InnoDB InnoDB是MySQL 4.0以后推出的一种比较新的数据表类型,这种类型是事务安全的。它与BDB类型具备相同的特性,它们还支持外键。InnoDB表格速度很快具备比BDB还丰富的特性,所以若是须要一个事务安全的存储引擎,建议使用它。若是你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,一样应该使用InnoDB表。对于支持事务的InnoDB类型的表来讲,影响速度的主要缘由是AUTOCOMMIT默认设置是打开的,并且程序没有显式调用BEGIN 开始事务,致使每插入一条都自动提交,严重影响了速度。能够在执行sql前调用begin,多条sql造成一个事物(即便autocommit打开也能够),将大大提升性能。 Gemeni Gemeni表,据据说也是在MySQL 4.0以后推出的,不过截至当前,不多有针对它的介绍,一样应用也就更少了,咱们暂时不做介绍。 经过描述发现InnoDB是事物安全的,而MyIASM是非事物安全的。InnonDB不会自动提交事物,这样的话就须要在进行插入后对事物进行手动提交。
相关文章
相关标签/搜索