mysql和oracle数据库的区别与联系(值得收藏)
1、mysql和oracle都是关系型数据库。
mysql默认端口:3306 默认用户root
oracle默认端口 1521 默认用户system
mysql的安装配置和卸载简单,oracle比较麻烦,严重的可能要你重做系统。
oracle在命令行用命令登陆:sqlplus---然后录入账号密码
mysql在命令行用命令登陆: mysql -hlocalhost -uroot -p123456
2、在初学阶段,用图形化工具,oracle 一般用PLSQL ,mysql 一般用navicat。假如别的你用着习惯比如sqlyog小海豚啥的当然也没有问题。
3、关于数据库的层次结构:
oracle:创建一个数据库,数据库下有好多用户:sys,system,scott等,不同用户下还有好多表。我们自己练习一般就创建一个数据库用。
mysql:默认用户是root,用户下可以创建好多数据库,每个数据库下还有好多表。我们一般自己练习就用默认用户,不会创建多个用户。
4、数据库中表字段的类型:
oracle数据库:number(数值型),varchar2,varchar,char (字符型),date 日期型 等
mysql数据库:int,float,double等数值型,varchar,char字符型,date,datetime,time,year,timestamp等日期型。
其中char(2)这样定义,这个单位在oracle中2代表两个字节,mysql中代表两个字符。
其中varchar在mysql中 必须给长度例如varchar(10) 不然插入的时候出错。
5、主键递增操作:
oracle数据库:可以借助序列
mysql数据库:有主键自增 auto_increment
6、分页:
(1)oracle分页比较复杂:
比如我们要查询:第11-20条记录
select * from
(select rownum rr,a.* from (select * from emp order by sal) a )
where rr>10 and rr<=20;
(2)mysql分页比较简单:
select * from category where category_id limit 10,5
10,5含义:索引是从0开始,所以10代表的是第11条记录,从第11条记录开始,取5条数据。
7、事务
oracle很早就完全支持事务。mysql在innodb存储引擎的行级锁的情况下才支持事务。
8、并发性
并发性是OLTP(联机事务处理过程)数据库最重要的特性,但并发涉及到资源的获取、共享与锁定。
mysql:mysql以表级锁为主,对资源锁定的粒度很大,如果一个session对一个表加锁时间过长,会让其他session无法更新此表中的数据。虽然InnoDB引擎的表可以用行级锁,但这个行级锁的机制依赖于表的索引,如果表没有索引,或者sql语句没有使用索引,那么仍然使用表级锁。
oracle:oracle使用行级锁,对资源锁定的粒度要小很多,只是锁定sql需要的资源,并且加锁是在数据库中的数据行上,不依赖与索引。所以oracle对并发性的支持要好很多。
9、一致性
oracle:oracle支持serializable的隔离级别,可以实现最高级别的读一致性。每个session提交后其他session才能看到提交的更改。oracle通过在undo表空间中构造多版本数据块来实现读一致性,每个session查询时,如果对应的数据块发生变化,oracle会在undo表空间中为这个session构造它查询时的旧的数据块。
mysql:mysql没有类似oracle的构造多版本数据块的机制,只支持read commited的隔离级别。一个session读取数据时,其他session不能更改数据,但可以在表最后插入数据。session更新数据时,要加上排它锁,其他session无法访问数据。
10、提交方式
oracle默认不自动提交,需要用户手动提交。mysql默认是自动提交。
其他:
Oracle是大型数据库而Mysql是中小型数据库,Oracle市场占有率达40%,Mysql只有20%左右,同时Mysql是开源的而Oracle价格非常高。
Oracle支持大并发,大访问量,是OLTP(On-Line Transaction Processing联机事务处理系统)最好的工具。
安装所用的空间差别也是很大的,Mysql安装完后才152M而Oracle有3G左右,且使用的时候Oracle占用特别大的内存空间和其他机器性能。
安全性
Oracle数据库提供了一系列安全功能,如高级的访问控制、加密和审计能力,这些对于要求严格合规性的企业环境至关重要。
备份和恢复
Oracle数据库拥有强大的备份和恢复功能,包括热备份、闪回查询和数据泵等,这些功能可以让企业快速恢复数据并减少宕机时间。MySQL可能需要额外的第三方工具或脚本。
事务管理
Oracle提供了非常先进的事务管理功能,支持可靠的ACID(原子性、一致性、隔离性、持久性)属性以确保数据完整性。Oracle的事务控制能力很适合处理高并发的大型系统。MySQL也支持ACID事务,但在早期版本中它是通过引擎如InnoDB来提供的。
编程语言
两个数据库系统都支持SQL(结构化查询语言)的多种方言,但是Oracle拥有自己的PL/SQL,这是一个对SQL进行扩展的过程化编程语言,允许在数据库中编写复杂的存储过程和函数。MySQL使用的是不太复杂的SQL方言,并支持存储过程,但其编程功能不如PL/SQL强大。
原文地址:https://blog.csdn.net/A_aspectJ/article/details/136557618
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!