oracle和mysql的区别有哪些

62次阅读
没有评论

共计 2052 个字符,预计需要花费 6 分钟才能阅读完成。

丸趣 TV 小编给大家分享一下 oracle 和 mysql 的区别有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

区别:1、oracle 数据库是一个重量级对象关系数据库管理系统,mysql 是一个轻量级开源的关系数据库管理系统;2、oracle 验证用户的参数有很多,有着较强的安全性,mysql 验证用户的参数只有三个,安全性较弱。

本教程操作环境:windows10 系统、mysql8.0.22 版本、Dell G3 电脑。

oracle 和 mysql 的区别是什么

1、类型和成本的区别

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

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

2、存储上的区别

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

3、安全性上的区别

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

4、对事务的支持

MySQL 在 innodb 存储引擎的行级锁的情况下才可支持事务,而 Oracle 则完全支持事务

5、性能诊断上的区别

MySQL 的诊断调优方法较少,主要有慢查询日志。

Oracle 有各种成熟的性能诊断调优工具,能实现很多自动分析、诊断功能。比如 awr、addm、sqltrace、tkproof 等

6、管理工具上的区别

MySQL 管理工具较少,在 linux 下的管理工具的安装有时要安装额外的包 (phpmyadmin,etc),有一定复杂性。

Oracle 有多种成熟的命令行、图形界面、web 管理工具,还有很多第三方的管理工具,管理极其方便高效。

7、并发性上的区别

MySQL 以表级锁为主,对资源锁定的粒度很大,如果一个 session 对一个表加锁时间过长,会让其他 session 无法更新此表中的数据。虽然 InnoDB 引擎的表可以用行级锁,但这个行级锁的机制依赖于表的索引,如果表没有索引,或者 sql 语句没有使用索引,那么仍然使用表级锁。

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

8、保存数据的持久性

MySQL 是在数据库更新或者重启,则会丢失数据,Oracle 把提交的 sql 操作线写入了在线联机日志文件中,保持到了磁盘上,可以随时恢复

9、事务隔离级别上的区别

MySQL 是 read commited 的隔离级别,而 Oracle 是 repeatable read 的隔离级别,同时二者都支持 serializable 串行化事务隔离级别,可以实现最高级别的读一致性。每个 session 提交后其他 session 才能看到提交的更改。

Oracle 通过在 undo 表空间中构造多版本数据块来实现读一致性,每个 session 查询时,如果对应的数据块发生变化,Oracle 会在 undo 表空间中为这个 session 构造它查询时的旧的数据块

MySQL 没有类似 Oracle 的构造多版本数据块的机制,只支持 read commited 的隔离级别。一个 session 读取数据时,其他 session 不能更改数据,但可以在表最后插入数据。session 更新数据时,要加上排它锁,其他 session 无法访问数据。

10、操作上的一些区别

①主键

Mysql 一般使用自动增长类型,在创建表时只要指定表的主键为 auto_increment,插入记录时,不需要再指定该记录的主键值,Mysql 将自动增长;

Oracle 没有自动增长类型,主键一般使用的序列,插入记录时将序列号的下一个值付给该字段即可;只是 ORM 框架是只要是 native 主键生成策略即可。

②单引号的处理

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

③翻页的 SQL 语句的处理

MYSQL 处理翻页的 SQL 语句比较简单,用 LIMIT 开始位置,记录个数;ORACLE 处理翻页的 SQL 语句就比较繁琐了。

④ 空字符的处理

MYSQL 的非空字段也可以有空的内容,ORACLE 里定义了非空字段就不容许有空的内容。

⑤字符串的模糊比较

MYSQL 里用 字段名 like % 字符串 %;ORACLE 里也可以用 字段名 like % 字符串 % 但这种方法不能使用索引,速度不快。

以上是“oracle 和 mysql 的区别有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注丸趣 TV 行业资讯频道!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-15发表,共计2052字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)