Oracle和MySQL区别详解(9大核心区别)

Oracle和MySQL区别详解(9大核心区别)-mikechen

1.核心应用场景区别

Mysql属于轻量级数据库,小巧,免费开源的,使用方便。

Mysql数据库的应用场景,大都集中于互联网方向,因为免费,安装使用简便快捷,深受广大互联网公司的喜爱。

Oracle:大型数据库软件,收费,支撑体系完善,强大,安全性高,适用于服务器比较强大的单节点或者集群环境。

Oracle数据库的应用场景:大都集中于一些大型企业,一些传统行业的数据化业务中,比如:银行、金融这一类,对于可用性,安全性,健壮性,实时性要求极高的业务。

 

2.占用内存大小区别

Oracle的内存占有量非常大,而mysql非常小,安装所用的空间差别也是很大的。

Mysql 安装完后才 几百M 而Oracle有3G 左右,且使用的时候 Oracle 占用特别大的内存空间和其他机器性能。

 

3.主键自动增长的区别

MySQL支持主键自增长,指定主键为auto increment,插入时会自动增长,Oracle主键一般使用Sequence序列来实现ID自动增长。

 

4.事务隔离级别的区别

MySQL与Oracle的默认隔离级别不一样:

MySQL的默认隔离级别为read committed(读已提交);

Oracle的默认隔离级别为repeatable read(可重复读);

 

5.表字段类型的区别

MySQL支持int、float、double等数值型,varchar、char字符型,date、datetime、time、year、timestamp等日期型。

Oracle支持number数值型,varchar2、varchar、char字符型,date日期型等。

其中char(2)这样定义,这个单位在Oracle中2代表两个字节,mysql中代表两个字符,其中Varchar在mysql中 必须给长度,比如:varchar(10) 。

 

6.分页查询的区别

MySQL是直接在SQL语句中使用limit就可以实现分页;

SELECT * FROM staffs LIMIT 5, 10;

Oracle则是需要用到伪劣rownum和嵌套查询,Oracle使用rownum字段表明位置,而且只能使用小于,不能使用大于。

 

7.事务提交的区别

MySQL默认是自动提交,可以修改为手动提交。

Oracle默认不自动提交,需要手动提交,需要在写commit指令,或点击commit按钮。

 

8.事务支持的区别

MySQL在innodb存储引擎的行级锁的情况下才可支持事务。

Oracle则完全支持事务。

 

9.并发性支持的区别

MySQL以表级锁为主,对资源锁定的粒度很大,虽然InnoDB引擎的表可以用行级锁,但这个行级锁的机制依赖于表的索引,如果表没有索引,那么仍然使用表级锁。

Oracle使用行级锁,对资源锁定的粒度要小很多,只是锁定sql需要的资源,并且加锁是在数据库中的数据行上,不依赖与索引。

所以Oracle对并发性的支持要好很多。

陈睿mikechen

10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

关注「mikechen」公众号,获取更多技术干货!

后台回复面试即可获取《史上最全阿里Java面试题总结》,后台回复架构,即可获取《阿里架构师进阶专题全部合集

评论交流
    说说你的看法