1.oracle索引结构
答:和mysql一样,是b+树
2.oracle也会面对事务四个并发问题吗
是的,oracle也会面临事务四个并发问题, oracle的默认隔离级别是 读已提交
oracle提供了三种隔离级别可供修改,分别是sql92标准中的read committed(读已提交)和serializable(可串行化),还有非sql92标准的read-only(读一致性)
我们可以手动设置oracle的隔离级别.
- set transaction isolation level read committed;(oracle默认的事务隔离级别“读已提交”)
-
- set transaction isolation level serializable;(设置事务隔离级别为“可串行化”)
-
- set transaction read only;(设置事务隔离级别为“读一致性”)
3.oracle的事务是自动提交的吗?
不是,oracle默认是要手动提交事务, 但是可以设置为自动提交
SQL>SET AUTOCOMMIT ON;
4.oracle的封锁和封锁协议
oracle也有三级封锁协议, oracle的锁和mysql的锁基本是一样的, oracle比mysql多了显示锁(针对于不同用户的)
5.oracle有mvcc吗
oracle是有mvcc的, 只不过oracle实现mvcc的方式和mysql不同.
在Oracle中,多版本控制MVCC通过回滚段实现,当行记录row发生更改的时候,先将数据块的旧版本将写入回滚段,随后将新数据覆写入原data block数据块区域。在读取数据的时候,通过比对scn来读取合适的数据版本。