首页 热点资讯 义务教育 高等教育 出国留学 考研考公
您的当前位置:首页正文

mysql与Oracle的区别:

2023-11-13 来源:花图问答

1.  Oracle是大型数据库而Mysql是中小型数据库,Oracle市场占有率达40%,Mysql只有20%左右,同时Mysql是开源的而Oracle价格非常高。2. Oracle支持大并发,大访问量,是OLTP(On-Line Transaction Processing联机事务处理系统)最好的工具。3. 安装所用的空间差别也是很大的,Mysql安装完后才152M而Oracle有3G左右,且使用的时候Oracle占用特别大的内存空间和其他机器性能。4.Oracle也Mysql操作上的一些区别①主键 Mysql一般使用自动增长类型,在创建表时只要指定表的主键为auto increment,插入记录时,不需要再指定该记录的主键值,Mysql将自动增长;Oracle没有自动增长类型,主键一般使用的序列,插入记录时将序列号的下一个值付给该字段即可;只是ORM框架是只要是native主键生成策略即可。②单引号的处理 MYSQL里可以用双引号包起字符串,ORACLE里只可以用单引号包起字符串。在插入和修改字符串前必须做单引号的替换:把所有出现的一个单引号替换成两个单引号。③翻页的SQL语句的处理 MYSQL处理翻页的SQL语句比较简单,用LIMIT 开始位置, 记录个数;ORACLE处理翻页的SQL语句就比较繁琐了。每个结果集只有一个ROWNUM字段标明它的位置, 并且只能用ROWNUM<100, 不能用ROWNUM>80④ 长字符串的处理 长字符串的处理ORACLE也有它特殊的地方。INSERT和UPDATE时最大可操作的字符串长度小于等于4000个单字节, 如果要插入更长的字符串, 请考虑字段用CLOB类型,方法借用ORACLE里自带的DBMS_LOB程序包。插入修改记录前一定要做进行非空和长度判断,不能为空的字段值和超出长度字段值都应该提出警告,返回上次操作。 ⑤空字符的处理 MYSQL的非空字段也有空的内容,ORACLE里定义了非空字段就不容许有空的内容。按MYSQL的NOT NULL来定义ORACLE表结构, 导数据的时候会产生错误。因此导数据时要对空字符进行判断,如果为NULL或空字符,需要把它改成一个空格的字符串。⑥字符串的模糊比较 MYSQL里用 字段名 like ‘%字符串%‘,ORACLE里也可以用 字段名 like ‘%字符串%‘ 但这种方法不能使用索引, 速度不快。⑦Oracle实现了ANSII SQL中大部分功能,如,事务的隔离级别、传播特性等而Mysql在这方面还是比较的若   

A:主键:

MySql一般使用自动增长类型,在创建表的时候只要指定表的主键为auto increment,插入记录时就不需要再为主键添加记录了,主键会自动增长。Oracle中没有自动增长,主键一般使用序列,插入记录时将序列号的下一值付给该字段即可,只是ORM框架只是需要native主键生成策略即可。

B:单引号的处理:

        MySql里可以使用双引号来包起字符串,Oracle里要使用单引号包起字符串。

        MYSQL里可以用双引号包起字符串,ORACLE里只可以用单引号包起字符串。在插入和修改字符串前必须做单引号的替换:把所有出现的一个单引号替换成两个单引号。

C:分页查询:

这个应该是两者最明显的区别了,很多人都知道MySql中分页很简单,因为他有专门的关键字limit来实现分页查询;但是Oracle里面没有这种关键字来实现分页查询的,所以它实现起来就比MySql要繁琐得多了,在每个结果集中只有一个rownum字段标明它的位置,并且只能用rownum<=某个数,不能用rownum>=某个数,因为ROWNUM是伪列,在使用时所以需要为ROWNUM取一个别名,变成逻辑列,然后来操作。

1 select * from (select ROWNUM as num,A.* from (select * from test) A where ROWNUM <=40) where num >= 20;  这是这两者的最大的不同.

D:长字符串的处理:

Oracle有它独特的地方,数据类型有一个clob类型,此类型专门用于在insert或者update时候字符串长度大于等于4000个单字节时使用。所以在插入记录前一定要进行非空和长度的判断,不能为空的或者长度超出的都应该提出警告,返回上次操作。MySql就没有这样的数据类型。

E:修改表的数据:

       Oracle数据库在使用表的数据操作时,需要用sql语句来执行,比如:select * from table for update;这样你才能对数据进行修改,修改完了之后记得点击提交事务按钮。MySql中修改或添加数据就简单得多了,直接就可以设置数据,点击refresh保存就好

F:事物提交方式

       oracle默认不自动提交,需要用户手动提交。

       mysql默认是自动提交。不支持事物。

       mysql默认自动提交,也就是你提交一个query,他就直接执行,我们可以通过

       set autocommit=0 禁止自动提交

       set autocommit=1 开启自动提交

       oracle很早就完全支持事务。    

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

G:并发性

      mysql以表级锁为主,对资源锁定的粒度很大,如果一个session对一个表加锁时间过长,会让其他session无法更新此表中的数据。虽然InnoDB引擎的表可以用行级锁,但这个行级锁的机制依赖于表的索引,如果表没有索引,或者sql语句没有使用索引,那么仍然使用表级锁。oracle:    oracle使用行级锁,对资源锁定的粒度要小很多,只是锁定sql需要的资源,并且加锁是在数据库中的数据行上,不依赖与索引。所以oracle对并发性的支持要好很多

H:一致性

    oracle:oracle支持serializable的隔离级别,可以实现最高级别的读一致性。每个session提交后其他session才能看到提交的更改。oracle通过在undo表空间中构造多版本数据块来实现读一致性,每个session查询时,如果对应的数据块发生变化,oracle会在undo表空间中为这个session构造它查询时的旧的数据块。mysql:mysql没有类似oracle的构造多版本数据块的机制,只支持read commited的隔离级别。一个session读取数据时,其他session不能更改数据,但可以在表最后插入数据。session更新数据时,要加上排它锁,其他session无法访问数据。

I:数据持久性

    oracle保证提交的数据均可恢复,因为oracle把提交的sql操作线写入了在线联机日志文件中,保持到了磁盘上,如果出现数据库或主机异常重启,重启后oracle可以考联机在线日志恢复客户提交的数据。mysql:默认提交sql语句,但如果更新过程中出现db或主机重启的问题,也许会丢失数据。

J:逻辑备份

    oracle逻辑备份时不锁定数据,且备份的数据是一致的。mysql逻辑备份时要锁定数据,才能保证备份的数据是一致的,影响业务正常的dml使用。

K:分区表和分区索引

    oracle的分区表和分区索引功能很成熟,可以提高用户访问db的体验。

    mysql的分区表还不太成熟稳定

mysql与Oracle的区别:

标签:因此   语句   取数据   undo表空间   机制   用户   排它锁   排它   翻页   

小编还为您整理了以下内容,可能对您也有帮助:

mysql和oracle的区别有什么

MySQL和Oracle都是关系型数据库管理系统(RDBMS)软件,用于存储、管理和操作大量的数据。

MySQL和Oracle是两种不同的关系型数据库管理系统(RDBMS),它们之间的主要区别在以下几个方面:

1、许可证:MySQL是开源的,可以免费使用和修改,而Oracle是一种商业性软件,需要购买许可证才能使用。

2、功能和性能:Oracle提供了一系列强大的功能和高性能,支持大规模的企业级应用系统,如ERP、CRM、人力资源管理等。MySQL则相对简单,适用于轻量级Web应用和中小型数据库系统,如网站、博客、电子商务等。

3、可靠性:Oracle在数据可靠性方面表现出色,支持多种高可用性和数据备份技术。MySQL则相对简单,可靠性取决于服务器硬件和软件环境等因素。

4、存储引擎:Oracle支持多种存储引擎,如B-Tree索引、哈希索引、位图索引等,具有很好的性能和扩展性。MySQL也支持多种存储引擎,如MyISAM、InnoDB、Memory等,不同的存储引擎有不同的特点和适用场景。

5、数据库管理工具:Oracle提供了一系列强大的管理工具和应用程序接口(API),如SQL Plus、Oracle Enterprise Manager等。MySQL的管理工具相对简单,可以使用命令行工具或者第三方图形化管理工具。

选择MySQL还是Oracle取决于实际的应用场景和需求,需要进行全面的考虑和评估。

oracle和mysql区别是什么?

oracle和mysql区别是:所属公司的不同、数据库的层次结构的不同、数据库中表字段类型的不同。

1、所属公司的不同

mysql与oracle都是关系型数据库,应用于各种平台。mysql最开始是一个瑞典公司开发的,但后来被sun公司收购,后来sun又被oracle收购,所以现在可以说mysql属于甲骨文公司了,mysql开源免费的,而oracle则是收费的,并且价格非常高。

mysql默认端口:3306,默认用户:root。
oracle默认端口:1521,默认用户:system。

2、数据库的层次结构的不同

mysql:默认用户是root,用户下可以创建好多数据库,每个数据库下还有好多表,一般情况下都是使用默认用户,不会创建多个用户。

oracle:创建一个数据库,数据库下有好多用户:sys、system、scott等,不同用户下有好多表,一般情况下只创建一个数据库用。

3、数据库中表字段类型的不同

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)不然插入的时候出错。

oracle和mysql区别是什么?

oracle和mysql区别是:所属公司的不同、数据库的层次结构的不同、数据库中表字段类型的不同。

1、所属公司的不同

mysql与oracle都是关系型数据库,应用于各种平台。mysql最开始是一个瑞典公司开发的,但后来被sun公司收购,后来sun又被oracle收购,所以现在可以说mysql属于甲骨文公司了,mysql开源免费的,而oracle则是收费的,并且价格非常高。

mysql默认端口:3306,默认用户:root。
oracle默认端口:1521,默认用户:system。

2、数据库的层次结构的不同

mysql:默认用户是root,用户下可以创建好多数据库,每个数据库下还有好多表,一般情况下都是使用默认用户,不会创建多个用户。

oracle:创建一个数据库,数据库下有好多用户:sys、system、scott等,不同用户下有好多表,一般情况下只创建一个数据库用。

3、数据库中表字段类型的不同

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)不然插入的时候出错。

oracle和mysql区别是什么?

oracle和mysql区别:

1、体积不同。oracle是oracle的数据库产品,它体积比较庞大,一般是用来开发大型应用(例如分布式)的。而mysql的体积相对来说比较小,较之oracle更容易安装、维护以及管理,操作也简单,最重要的是它是三个中唯一一个开源数据库,但目前也属于Oracle公司的产品了。

2、容量不同。Oracle容量无限,根据配置决定;而mysql使用MyISAM存储引擎,最大表尺寸为65536TB。MySQL数据库的最大有效表尺寸通常是由操作系统对文件大小的*决定的,而不是由MySQL内部*决定。

3、平台支持及速度的区别。Oracle支持大对数平台;而mysql支持各种平台,适合Linux。至于速度,oracle在linux下的性能,在少量数据时速度低于mysql,在千万级时速度快于Mysql。

4、数据库崩溃造成的影响不同。oracle数据库崩溃后恢复很麻烦,因为他把很多东西放在内存里;数据库连接要慢些,最好用连接池;而mysql使用缺省的ip端口,但是有时候这些ip也会被一些黑客闯入,使用myisam配置,不慎损坏数据库,结果可能会导致所有的数据丢失。

5、性能的区别。Oracle全面,完整,稳定,但一般数据量大,对硬件要求较高;而mysql使用CPU和内存极少,性能很高,但扩展性较差。

6、授权价格区别。Oracle价格较贵,例如Oracle10G//11G标准版[10用户]¥25600,Oracle10G//11G标准版[1CPU无限用户]¥157600。而MySQL采用双重授权,他们是GPL和MySQLAB制定的商业许可协议。如果你在一个遵循GPL的自由项目中使用MySQL,那么你可以遵循GPL协议免费使用MySQL。否则,你需要购买MySQLAB制定的那个商业许可协议。

oracle和mysql区别是什么?

oracle和mysql区别:

1、体积不同。oracle是oracle的数据库产品,它体积比较庞大,一般是用来开发大型应用(例如分布式)的。而mysql的体积相对来说比较小,较之oracle更容易安装、维护以及管理,操作也简单,最重要的是它是三个中唯一一个开源数据库,但目前也属于Oracle公司的产品了。

2、容量不同。Oracle容量无限,根据配置决定;而mysql使用MyISAM存储引擎,最大表尺寸为65536TB。MySQL数据库的最大有效表尺寸通常是由操作系统对文件大小的*决定的,而不是由MySQL内部*决定。

3、平台支持及速度的区别。Oracle支持大对数平台;而mysql支持各种平台,适合Linux。至于速度,oracle在linux下的性能,在少量数据时速度低于mysql,在千万级时速度快于Mysql。

4、数据库崩溃造成的影响不同。oracle数据库崩溃后恢复很麻烦,因为他把很多东西放在内存里;数据库连接要慢些,最好用连接池;而mysql使用缺省的ip端口,但是有时候这些ip也会被一些黑客闯入,使用myisam配置,不慎损坏数据库,结果可能会导致所有的数据丢失。

5、性能的区别。Oracle全面,完整,稳定,但一般数据量大,对硬件要求较高;而mysql使用CPU和内存极少,性能很高,但扩展性较差。

6、授权价格区别。Oracle价格较贵,例如Oracle10G//11G标准版[10用户]¥25600,Oracle10G//11G标准版[1CPU无限用户]¥157600。而MySQL采用双重授权,他们是GPL和MySQLAB制定的商业许可协议。如果你在一个遵循GPL的自由项目中使用MySQL,那么你可以遵循GPL协议免费使用MySQL。否则,你需要购买MySQLAB制定的那个商业许可协议。

mysql和oracle的区别

MySQL与Oracle的区别:

一、Oracle是大型数据库而Mysql是中小型数据库,Oracle市场占有率达40%,Mysql只有20%左右,同时Mysql是开源的而Oracle价格非常高。

二、Oracle支持大并发,大访问量,是OLTP最好的工具。

三、安装所用的空间差别也是很大的,Mysql安装完后才152M而Oracle有3G左右,且使用的时候Oracle占用特别大的内存空间和其他机器性能。

四、Oracle也Mysql操作上的一些区别:

1、主键Mysql一般使用自动增长类型,在创建表时只要指定表的主键为autoincrement,插入记录时,不需要再指定该记录的主键值,Mysql将自动增长;Oracle没有自动增长类型,主键一般使用的序列,插入记录时将序列号的下一个值付给该字段即可;只是ORM框架是只要是native主键生成策略即可。

2、单引号的处理MYSQL里可以用双引号包起字符串,ORACLE里只可以用单引号包起字符串。在插入和修改字符串前必须做单引号的替换:把所有出现的一个单引号替换成两个单引号。

3、翻页的SQL语句的处理MYSQL处理翻页的SQL语句比较简单,用LIMIT开始位置,记录个数;ORACLE处理翻页的SQL语句就比较繁琐了。每个结果集只有一个ROWNUM字段标明它的位置,并且只能用ROWNUM<100,不能用ROWNUM>80。

4、长字符串的处理长字符串的处理ORACLE也有它特殊的地方。INSERT和UPDATE时最大可操作的字符串长度小于等于4000个单字节,如果要插入更长的字符串,请考虑字段用CLOB类型,方法借用ORACLE里自带的DBMS_LOB程序包。插入修改记录前一定要做进行非空和长度判断,不能为空的字段值和超出长度字段值都应该提出警告,返回上次操作。

5、空字符的处理MYSQL的非空字段也有空的内容,ORACLE里定义了非空字段就不容许有空的内容。按MYSQL的NOTNULL来定义ORACLE表结构,导数据的时候会产生错误。因此导数据时要对空字符进行判断,如果为NULL或空字符,需要把它改成一个空格的字符串。

6、字符串的模糊比较MYSQL里用字段名like'%字符串%',ORACLE里也可以用字段名like'%字符串%'但这种方法不能使用索引,速度不快。

7、Oracle实现了ANSIISQL中大部分功能,如,事务的隔离级别、传播特性等而Mysql在这方面还是比较的弱。

oracle和mysql区别

Oracle和MySQL的区别:本质的区别、数据库安全性、SQL语法的区别、存储上的区别、运行程序和外部程序支持。

1、本质的区别

Oracle数据库是一个对象关系数据库管理系统(ORDBMS)。它通常被称为Oracle RDBMS或简称为Oracle,是一个收费的数据库。

MySQL是一个开源的关系数据库管理系统(RDBMS)。它是世界上使用最多的RDBMS,作为服务器运行,提供对多个数据库的多用户访问。它是一个开源、免费的数据库。

2、数据库安全性

MySQL使用三个参数来验证用户,即用户名,密码和位置;Oracle使用了许多安全功能,如用户名,密码,配置文件,本地身份验证,外部身份验证,高级安全增强功能等。

3、SQL语法的区别

Oracle的SQL语法与MySQL有很大不同。Oracle为称为PL/SQL的编程语言提供了更大的灵活性。Oracle的SQLPlus工具提供了比MySQL更多的命令,用于生成报表输出和变量定义。

4、存储上的区别

与Oracle相比,MySQL没有表空间,角色管理,快照,同义词和包以及自动存储管理。

5、运行程序和外部程序支持

Oracle数据库支持从数据库内部编写,编译和执行的几种编程语言。此外,为了传输数据,Oracle数据库使用XML。MySQL不支持在系统内执行其他语言,也不支持XML。

显示全文