当前位置:网站首页>Oracle和MySQL的基本区别(入门级)
Oracle和MySQL的基本区别(入门级)
2022-07-02 04:52:00 【MICAHHH】
整体
产品定位区别
- Oracle数据库是一个对象关系数据库管理系统(ORDBMS)。MySQL是一个开源的关系数据库管理系统(RDBMS)。
- Oracle是收费的大型数据库。MySQL是一个开源、免费的、中小型数据库。
- Oracle出事找客服,MySQL出事自己解决。
事务的支持
- Oracle默认不自动提交,需要用户手动提交。MySQL默认是自动提交。
- MySQL只有部分存储引擎支持事务(InnoDB),Oracle则支持。
并发性
什么是并发性?并发性是OLTP(On-Line Transaction Processing联机事务处理过程)数据库最重要的特性,并发性涉及到资源的获取、共享与锁定。
Mysql以表锁为主,对资源锁定的力度很大,如果一个session对一个表加锁时间过长,会让其他session无法更新此表的数据。
Oracle使用行级锁,对资源锁定的力度要小很多,只是锁定sql需要的资源,并且加锁是在数据库中的数据行上,不依赖于索引。所以oracle对并发性的支持要好很多。
持久性
Oracle保证提交的事务均可以恢复,因为Oracle把提交的sql操作线写入了在线联机日志文件中,保存到磁盘上,如果出现数据库或者主机异常重启,重启Oracle可以靠联机在线日志恢复客户提交的数据。
Mysql默认提交sql语句,但是如果更新过程中出现db或者主机重启的问题,也可能会丢失数据。
数据复制
MySQL:复制服务器配置简单,但主库出问题时,丛库有可能丢失一定的数据。且需要手工切换丛库到主库。
Oracle:既有推或拉式的传统数据复制,也有dataguard的双机或多机容灾机制,主库出现问题是,可以自动切换备库到主库,但配置管理较复杂。
性能诊断
Oracle有各种成熟的性能诊断调优工具,能实现很多自动分析、诊断功能。比如awr、addm、sqltrace、tkproof等;
MySQL的诊断调优方法较少,主要有慢查询日志。
数据备份
Mysql逻辑备份是要锁定数据,才能保证备份的数据是一致的,影响业务正常的DML(数据操纵语言Data Manipulation Language)使用;Oracle逻辑备份时不锁定数据,且备份的数据是一致的。
权限的支持
- Oracle的权限与安全概念比较传统,中规中矩;MySQL的用户与主机有关,感觉没有什么意义,另外更容易被仿冒主机及ip有可乘之机。
- Oracle可以设置用户权限、访问权限、读写权限等,MySQL没有。
隔离级别
MySQL是repeatable read的隔离级别,而Oracle是read commited的隔离级别
分区表和分区索引
MySQL的分区表还不太成熟稳定;Oracle的分区表和分区索引功能很成熟,可以提高用户访问db的体验。
数据结构
日期支持
MySQL日期字段分DATE和TIME两种,Oracle日期字段只有DATE,包含年月日时分秒信息,用当前数据库的系统时间为SYSDATE, 精确到秒
字符型支持
两个数据库中支持的字符类型存在一些差异。对于字符类型,MySQL具有CHAR和VARCHAR,最大长度允许为65,535字节(CHAR最多可以为255字节,VARCHAR为65.535字节)。
而,Oracle支持四种字符类型,即CHAR,NCHAR,VARCHAR2和NVARCHAR2; 所有四种字符类型都需要至少1个字节长; CHAR和NCHAR最大可以是2000个字节,NVARCHAR2和VARCHAR2的最大限制是4000个字节。可能会在最新版本中进行扩展。
SQL语句
- mysql使用concat()函数连接字符串,oracle不仅有concat()函数,还可以使用||;
- mysql分页使用limit,oracle分页得借助rownum关键字(Oracle的分页是通过伪列和子查询完成的,插入数据只能一行行的插入数据)
- mysql自动增长auto_increment,oracle使用序列代替;
- mysql直接书写循环判断语句,oracle得借助PL/SQL语句
- mysql判断使用elseif,oracle使用elsif;
- group by,在下oracle下用group by的话,group by后面的字段必须在select后面出现,不然会报错的,而mysql却不会;
- mysql没有全外连接,使用集合连接代替,oracle有全外连接,而且左右外连接有自己的语法:(+);
- mysql可以没有from,oracle必须有,可以写成from dual;
- mysql可以创建数据库,而oracle没有这个操作,oracle只能创建实例;
- Oracle没有if exists关键字,也没用类似if exists的SQL语法。
(区别太多,遇到问题再查询)
Oracle 还是 MySQL
一般人都会想,如果有很多的高并发、高安全性等高级需求,那么用Oracle比较好,反之用MySQL。
倘若核心技术不是自己深度掌握,很难有足够快速的问题解决能力。所以大多数都会选择自己研发的数据库。很多人搞去IOE,彻底抛弃以IBM、ORACLE和EMC为代表的传统IT架构,其实质是用“分布式架构+开源软件”替代传统的“集中式架构+商用软件”。像阿里巴巴就是从Oracle转到MySQL。
多数互联网公司的选择都是混搭: 能用开源解决的用开源,开源不那么靠谱的就用商用的顶上,再慢慢找合适的时机替换。但其实,商业一般都是唯快不破,快速抢占市场最好用Oracle。
从钱的角度看,一个优秀MySQL DBA的工资也不低,所以看起来Oracle也不是那么贵。
具体问题还得具体分析。
参考:
https://zhuanlan.zhihu.com/p/158751020
https://zhuanlan.zhihu.com/p/335264917
https://www.cnblogs.com/yanyunpiaomaio/p/10821437.html
https://blog.csdn.net/andyguan01_2/article/details/86995794
边栏推荐
- Learn what definitelytyped is through the typescript development environment of SAP ui5
- Analyzing the hands-on building tutorial in children's programming
- Future trend of automated testing ----- self healing technology
- Social media search engine optimization and its importance
- Geotrust OV Multi - Domain Domain SSL Certificate rmb2100 per year contains several Domain names?
- Thinkphp Kernel wo system source Commercial Open source multi - user + multi - Customer Service + SMS + email notification
- My first experience of shadowless cloud computer
- Detailed process of DC-1 range construction and penetration practice (DC range Series)
- C# 基于MQTTNet的服务端与客户端通信案例
- Win10 disk management compressed volume cannot be started
猜你喜欢
How to write a client-side technical solution
Summary of common string processing functions in C language
Keil compilation code of CY7C68013A
Markdown编辑语法
Hcip day 17
6月书讯 | 9本新书上市,阵容强大,闭眼入!
2022-003arts: recursive routine of binary tree
CorelDRAW Graphics Suite2022免费图形设计软件
idea自动导包和自动删包设置
记录一次Unity 2020.3.31f1的bug
随机推荐
Orthogonal test method and function diagram method for test case design
Social media search engine optimization and its importance
Solution: the agent throws an exception error
Mysql database learning
正大留4的主账户信息汇总
農業生態領域智能機器人的應用
C# 基于MQTTNet的服务端与客户端通信案例
Summary of main account information of zhengdaliu 4
Let正版短信测压开源源码
CorelDRAW graphics suite2022 free graphic design software
Detailed process of DC-1 range construction and penetration practice (DC range Series)
oracle 存储过程与job任务设置
LM09丨费雪逆变换反转网格策略
数据库问题汇总
VMware installation win10 reports an error: operating system not found
Landing guide for "prohibit using select * as query field list"
What data does the main account of Zhengda Meiou 4 pay attention to?
Geotrust OV Multi - Domain Domain SSL Certificate rmb2100 per year contains several Domain names?
[Yu Yue education] autumn 2021 reference materials of Tongji University
How to configure PostgreSQL 12.9 to allow remote connections