Oracle 相比 mysql 的优势在哪里

发布于 2021-04-28 14:21:17

目前的项目用的 mysql,支撑几十亿数据没问题(分库分表),偶尔慢 sql 也能优化索引解决,至于复杂查询通过搜索引擎实现,听说 Oracle 超级贵,那 Oracle 具体有什么优势呢,哪些场景下是 oracle only 的?

查看更多

关注者
0
被浏览
885
7 个回答
philipjf
philipjf 2021-04-28
这家伙很懒,什么也没写!

用 Oracle 出了问题可以甩锅给 Oracle,用 mysql 只能自己背

felixcode
felixcode 2021-04-28
这家伙很懒,什么也没写!

Oracle性能上限更高,有更多高级特性,可靠性和安全性有更多的特性支持。
只要出的起钱,能达到业界顶尖性能。

LeeReamond
LeeReamond 2021-04-28
这家伙很懒,什么也没写!

mysql 性能上限比 oracle 低,你几十亿能优化下来说明业务能优化到小分区,而且延迟要求不高。比如你现在业务需求十亿数据必须放在单表里,有复杂的集合运算需求,随机位置的顺序数据要求延迟低于 0.2 秒这种,mysql 比较难做

libook
libook 2021-04-28
这家伙很懒,什么也没写!

如果没意识到 Oracle 比 MySQL 好用,说明 MySQL 就已经能满足你的需求了,等未来有需求 MySQL 解决不了,可以看看是不是 Oracle 能解决。

就像前端就写个静态页面,也没感觉用原生 JS 比用框架好在哪;如果做个交互丰富的后台,框架的优势就能体现出来了。

shakoon
shakoon 2021-04-28
这家伙很懒,什么也没写!

省级别的就业数据,就是用的 Oracle,其实 Oracle 也提供了一些海量数据处理,多台 Oracle 一起处理的软件,只不过你没买而已,我听他们说是花了 3000w 。

政府项目用 Oracle 用得多,并且都是有支持的,比如我扫描出已有的 CVE,需要打个补丁了,你这 MySQL Community 就不能直接更新,低版本的需要删了重装。而且 Oracle 有些特殊语法,比如 START WITH CONNECT BY 这种递归的 feature,MySQL 只能通过存储过程来实现。

Oracle 的优化做得还是不错的,单表几亿数据没什么问题,对于大部分业务场景其实足够了。而且你买了,他们有售后的,有问题可以提,如果是社区版的 MySQL,不好意思,自己解决。

dynastysea
dynastysea 2021-04-28
这家伙很懒,什么也没写!

oracle 对开发人员的容忍度高,简单来说就是开发人员写了一堆低质,无索引,超级复杂的 sql,oracle 可能都能给你处理好。但实际上在现如今互联网从业人员素质普遍比较高的情况下,各种组件百花齐放的情况下,oracle 的优势已经不明显了,以前只能依赖 oracle 解决的问题,现在都已经有高好的替代方案了。

另外 mysql 也没有大家说的那么差,不要用原生的 mysql 看待当今的数据库(比如有人觉得 mysql 支持不了单表过亿的数据),多看看 Aurora,polardb 、tidb 、oceanbase,这些数据库很多方面也做的不错了。

oracle 真没大家想象的那么无坚不摧,这么说吧,极端情况下(比如美国禁售 oracle ),oracle 数据库绝对都是可以代替的。现在国内也是在去 O 进行中,这个的难度在于要业务配合该代码(这个说起来的原因就多了,现在很多数据库也兼容大多数 oracle 的用法, 但不是 100%,因为 oracle 发展几十年,有些很落后,不合理的语法在现如今是没必要去兼容的),所以导致去 O 的进度比较缓慢。事实上现如今新增的系统采用 oracle 的已经极少了,互联网已经绝迹了(互联网基本拥有比较高素质的开发,拥有比较高的 sql 素质,比如知道更合理的使用索引,优化复杂 sql )。

这里也没有贬低 oracle 的意思,只是想说在百花齐放的现如今,没必要无脑跪舔 oracle,属于 oracle 的时代已经过去了,大家可以用发展的眼光多看待问题。

tohuer00
tohuer00 2021-04-28
这家伙很懒,什么也没写!

全方位的优势,除了价格。
但是价格成本这东西怎么说呢,之前银行、运营商学着互联网搞“去 IOE”,去了这么多年还去不掉,很大一个原因就是你要自己养一个玩得转 MySQL 的团队,去优化,去定制开发,这个成本未必比直接用 Oracle 低。当然了,系统规模不大直接用社区版的 MySQL 也够了。

再以我作为软件开发者角度的使用体验来说,Oracle 下 sql 语句想怎么写怎么写,只要不是索引没覆盖到使用的字段,性能基本没问题。MySQL 就不行了,必须要熟悉 MySQL 索引背后的机制,熟悉 sql 优化的逻辑,一个不小心性能就爆炸。
所以很多大厂的规范也是不允许在 MySQL 下做 3 张表以上的关联;从 Oracle 迁移到 MySQL 时把复杂 sql 语句做拆分也是必须的步骤。
很久以前做过的一些系统里面不少 sql 语句几十行,甚至上百行,先不讨论这种代码是不是很烂,但它在 Oracle 下跑起来性能就是没啥问题。

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览