-
介绍下MySQL和Oracle
MySQL是一个轻量级的关系型数据库(开源)
Oracle是一个重量级的关系型数据库(收费) -
MySQL的两种存储引擎
INNODB: 支持事务,支持外键,支持表级锁、行级锁
MYISAM: 不支持事务,不支持外键,支持表级锁 -
MySQL和Oracle区别
(1) MySQL支持自增主键(auto increment),而Oracle支持序列
(2) MySQL占内存小,Oracle占内存大
(3) MySQL字符串用双引号,Oracle用单引号
(4) MySQL分页用limit,Oacle使用rownum表名位置,而且只能用小于
(5) MySQL用0、1判断真假,Oracle用true、false
(6) MySQL的事务级别是repeatable read,oracle的事务隔离性是read committed -
事务的四大特性(ACID)
原子性(Atomicity):事务的所有操作要么全部成功,要么全部回滚
一致性(Consistency):事务必须使数据库从一个一致性状态变换到另一个一致性状态
隔离性(Isolation):多个事务并发访问数据库时,如何相互干扰
持久性(Durability):事务对数据库的修改是永久的 -
事务隔离性的四个级别
read uncommitted: 写的时候不让再写。 脏读+不可重复读+幻读
read committed:未提交的写事务不让其他事务读写。 不可重复读+幻读
repeatable read:写的时候不允许读写,读的时候不允许写。 幻读
serializable:事务一个一个执行。 无问题
MySQL默认第三个,Oracle默认第二个
-
事务并发问题
脏读:A事务读取了B事务尚未提交的数据,之后B事务回滚了,那么A事务读的就是脏数据。
不可重复读:A事务