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面试题总结》,后台回复【架构】,即可获取《阿里架构师进阶专题全部合集》