Mybatis事务提交问题

今天遇到了mybatis执行增删改时,没有通过事务提交,即sqlSession.commit();sql语句就直接完成了对数据库的操作,首先怀疑了sqlSession的默认设置问题,是否是自动提交,排查之后,发现是数据库的引擎问题,将表数据提取之后,将引擎从MyIsAM改为了Inodb引擎,

各个数据库引擎直接的区别

  • MyISAM这种存储引擎不支持事务。

    MyISAM是mysql最常用的存储引擎,但是这种引擎不是默认的

    它管理的表具有以下特征:使用三个文件表示每个表

    • 格式文件-存储表结构的定义(table.frm)
    • 数据文件-存储表行的内容(table.MYD)
    • 索引文件-存储表上索引(table.MYI)

    灵活的auto_increment处理

    可被压缩,只读表来节省空间

    优点:可被压缩,节省存储空间。并且可以转换为只读表,提高检索效率

    缺点:不支持事务

  • InnoDB存储引擎

    优点:支持事务,行级锁、外键等。这种存储引擎数据的安全得到保障。

    表的结构存储在xxx.frm文件中

    数据存储在tablespace这样的表空间(逻辑概念),无法被压缩,无法转换成只读

    这种InnoDB存储引擎在数据库崩溃之后提供自动恢复机制。

    InnoDB支持级联删除和级联更新。

  • MEMORY存储引擎

    缺点:不支持事务。数据容易丢。因为所有数据和索引都是存储在内存当中。

    优点:查询速度最快。

    以前叫做HEPA引擎

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值