oracle和mysql语法区别很大,MySQL默认是自动提交,而Oracle默认不自动提交,需要用户手动提交,需要在写commit指令或者点击commit按钮。MySQL是read commited的隔离级别,而Oracle是repeatable read的隔离级别。
查询时,如果对应的数据块发生变化,Oracle会在undo表空间中为这个session构造它查询时的旧的数据块。MySQL没有类似Oracle的构造多版本数据块的机制,只支持read commited的隔离级别。一个session读取数据时,其他session不能更改数据,但可以在表最后插入数据。session更新数据时,要加上排它锁,其他session无法访问数据。
MySQL在innodb存储引擎的行级锁的情况下才可支持事务,而Oracle则完全支持事务。
MySQL是在数据库更新或者重启,则会丢失数据,Oracle把提交的sql操作线写入了在线联机日志文件中,保持到了磁盘上,可以随时恢复。