1、mysql是中小型开源数据库,而oracle是大型收费的关系型数据库。
(1)mysql默认端口3306,默认用户是root;
(2)oracle默认端口1521,默认用户是system。
2、oracle内存占用量非常,而mysql非常小。
(1)mysql登录:mysql -hip -u用户 -p密码 -P端口号 -D数据库名;
(2)oracle登录:sqlplus user/password@ip:port/instance_name。
3、数据库层次结构。
(1)mysql默认用户是root,用户可以创建多个数据库,每个数据库下可以有多张表,一般情况下都是使用默认用户,不会创建多个用户;
(2)oracle是单实例,一个数据库下有多个用户,不同用户具有多张表。
4、数据库中表字段类型不同。
(1)mysql的整数类型有单字节的tinyint、双字节的smallint、三字节的mediumint、四字节的int或integer、八字节的bigint,浮点类型有四字节的float和八字节的double,日期类型有date、time、year、datetime、timestamp,字符类型有char、varchar、text。
(2)oracle的数值类型是number,字符类型有char、varchar、varchar2,日期型有date等。
5、 mysql支持自增长主键,而oracle主键的自增长需要依赖序列来实现。
6、引号的处理不同,mysql字符串可以使用双引用包起来,而oracle只可以使用单引号。
7、分页方式不同,mysql使用limit关键字,而oracle的分页需要使用rownum来实现。
8、事务的提交方式不一样。mysql默认是自动提交,可以修改为手动提交。oracle默认不自动提交,需要手动提交。
9、事务隔离级别的区别。mysql是可重复读,而oracle是读已提交。
10、并发性不一样。mysql是以表级锁为主,对资源锁定的粒度较大,如果一个会话对表加锁时间过长,会让其他会话无法更新此表的数据。虽然innodb引擎表可以使用行级锁,但这个行级锁机制依赖于表的索引,如果表没有索引,或者说sql语句没有使用到索引,那么仍然使用表级锁。oracle使用行级锁,对资源锁定的粒度要小很多,只是锁定sql需要的资源,并且加锁是在数据库的数据行上,不依赖于索引,所以oracle对并发性的支持要好很多。
11、逻辑备份。mysql逻辑备份时要锁定数据,才能保证备份的数据是一致的,会影响正常的DML使用。oracle逻辑备份时不锁定数据,且备份的数据是一致的。
12、判断真假方式不同,mysql中0、1判断真假,oracle中使用true、false来判断。
13、区分大小写不同,mysql在linux环境下区分大小写,oracle是不区分的。
14、日期转换不同方式不同,mysql使用dataformat函数进行日期转换,oracle采用to_date和to_char函数进行日期转换。
转载:https://blog.csdn.net/dolly_baby/article/details/128474536