mysql与oracle的对比

1.并发性。
mysql是以表级锁为主,对资源的锁定力度很大。如果一个session对一个表加锁时间过长,会使其他session无法更新此表中的其他数据。虽然innoDB引擎的表使用的是行级锁,但行级锁的机制依赖于表的索引,如果没有表索引或者该sql没有使用索引,那么仍然使用表级锁。
而oracle使用的是行级锁,对资源的锁定力度很小,并且不依赖于索引。
oracle对并发性的支持要比mysql高。
2.一致性。
oracle支持serializable的隔离级别,可以使用最高级别的读一致性。每个session提交后,其他session才可以看到提交后的数据。
oracle通过在undo表空间中构造多版本数据块来实现读一致性。每个session查询时,如果对应的数据块发生变化,会在undo表空间里为这个session构造它查询时的旧的数据块。
而mysql没有构造多版本数据块的机制,只支持read commited的隔离级别,一个session读取数据时,其他session不能更改数据,但可以在表的最后插入数据。session在更新数据时,要加上排它锁,其他session无法访问数据。

3.事务。
mysql只有在innoDB存储引擎下的行级锁的情况下才支持事务,oracle完全支持事务。
4、数据持久性。
oracle保证提交的数据均可恢复,因为它把提交的sql操作都写入到了在线联机日志文件中,保存到了磁盘。如果数据库或者服务器重启,它可以靠在线联机日志文件来恢复数据。
而mysql默认提交数据,但如果在更新过程中出现重启或者宕机,有可能丢失数据。
5.提交方式。
mysql默认提交,而oracle需要手动提交。
6.逻辑备份。
mysql逻辑备份时要锁定数据,才能保证备份的数据时一致的,影响正常的dml使用。
oracle逻辑备份的时候不需要锁定数据,而且备份的数据一致。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值