目前的项目用的 mysql,支撑几十亿数据没问题(分库分表),偶尔慢 sql 也能优化索引解决,至于复杂查询通过搜索引擎实现,听说 Oracle 超级贵,那 Oracle 具体有什么优势呢,哪些场景下是 oracle only 的?
1
liprais 2021-04-27 17:33:16 +08:00
看你这语气,不就是没有么
|
3
tabris17 2021-04-27 17:36:10 +08:00
开源软件一般都是写着“AS IS”,就是使用中出了问题或 BUG 导致的损失软件作者不负责
|
5
philipjf 2021-04-27 17:41:30 +08:00 7
用 Oracle 出了问题可以甩锅给 Oracle,用 mysql 只能自己背
|
6
springGun 2021-04-27 17:44:59 +08:00
支持 hash join
|
7
nieyujiang 2021-04-27 17:51:29 +08:00 via iPhone
拿人钱财替人背锅
|
8
domodomo 2021-04-27 17:52:54 +08:00
php 是最好的语言
mysql 是最好的关系数据库 手动狗头 |
9
felixcode 2021-04-27 18:03:39 +08:00 1
性能上限更高,有更多高级特性,可靠性和安全性有更多的特性支持。
只要出的起钱,能达到业界顶尖性能。 |
10
zhaorunze 2021-04-27 18:07:09 +08:00
国内估计也没几个用 oracle 的公司,问等于白问
|
11
LeeReamond 2021-04-27 18:11:10 +08:00 via Android 1
mysql 性能上限比 oracle 低,你几十亿能优化下来说明业务能优化到小分区,而且延迟要求不高。比如你现在业务需求十亿数据必须放在单表里,有复杂的集合运算需求,随机位置的顺序数据要求延迟低于 0.2 秒这种,mysql 比较难做
|
12
securityCoding 2021-04-27 18:12:18 +08:00 2
@zhaorunze 互联网用的不多,传统企业用 o 的多得是啊
|
13
labulaka521 2021-04-27 18:20:31 +08:00 via iPhone 2
oracle 能把 mysql 打的连渣都不剩
|
14
libook 2021-04-27 18:27:17 +08:00 7
如果没意识到 Oracle 比 MySQL 好用,说明 MySQL 就已经能满足你的需求了,等未来有需求 MySQL 解决不了,可以看看是不是 Oracle 能解决。
就像前端就写个静态页面,也没感觉用原生 JS 比用框架好在哪;如果做个交互丰富的后台,框架的优势就能体现出来了。 |
15
iyaozhen 2021-04-27 18:32:02 +08:00
简单来说,支撑几十亿数据没问题,Oracle 不用分库分表,或者说对于业务来说就是一张表
oracle only 的有一些是解决方案,比如 BI 这一块 |
16
Tink 2021-04-27 18:35:14 +08:00 via Android
你也说了,分库分表啊
|
17
young1lin 2021-04-27 18:44:20 +08:00 3
省级别的就业数据,就是用的 Oracle,其实 Oracle 也提供了一些海量数据处理,多台 Oracle 一起处理的软件,只不过你没买而已,我听他们说是花了 3000w 。
政府项目用 Oracle 用得多,并且都是有支持的,比如我扫描出已有的 CVE,需要打个补丁了,你这 MySQL Community 就不能直接更新,低版本的需要删了重装。而且 Oracle 有些特殊语法,比如 START WITH CONNECT BY 这种递归的 feature,MySQL 只能通过存储过程来实现。 Oracle 的优化做得还是不错的,单表几亿数据没什么问题,对于大部分业务场景其实足够了。而且你买了,他们有售后的,有问题可以提,如果是社区版的 MySQL,不好意思,自己解决。 |
19
mmdsun 2021-04-27 18:48:59 +08:00 via Android 3
性能低?数据库前三名里面,另外两个比 MySQL 要好太多了。
我们 dba 说 MySQL 是使用最广泛但最 lj 的数据库。😂 |
20
pkoukk 2021-04-27 18:51:07 +08:00
o 家的 dba 证书能换钱
|
21
libook 2021-04-27 18:55:51 +08:00
@chenqh #18 其实现在很多系统不一定非要用一种数据库来实现,可以尝试把需求进行拆分,然后用几种不同特性的数据库、中间件来分别发挥其擅长的特性,从而做到整体系统性能的提升。
|
22
LeeReamond 2021-04-27 18:58:30 +08:00
@mmdsun 前三名除了 oracle 和 mysql 剩下的是哪个?
|
23
darknoll 2021-04-27 19:03:09 +08:00
@LeeReamond 当然是 sql server
|
24
LeeReamond 2021-04-27 19:06:04 +08:00
@darknoll pg 不配拥有姓名
|
25
bruce0 2021-04-27 19:07:51 +08:00
|
26
S2Line 2021-04-27 19:09:49 +08:00
Oracle 除了贵,应该大部分方面都比 MySQL 强
|
27
zhujq 2021-04-27 19:17:43 +08:00
除了贵点,其他都挺好的
|
28
est 2021-04-27 19:18:15 +08:00
oracle 的主要优势是付费甩锅。所有 db 问题可以由技术支持搞定。
mysql 主要看保养得如何。没人管的 innodb 比较烧机油。 |
29
jmychou 2021-04-27 19:23:42 +08:00 via iPhone
充钱和不充钱的区别
|
30
dynastysea 2021-04-27 19:30:57 +08:00 5
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 的时代已经过去了,大家可以用发展的眼光多看待问题。 |
31
shakoon 2021-04-27 19:31:30 +08:00 1
Oracle 支撑几十亿数据也没问题,而且不用分库分表 😉
|
32
KarmaWu 2021-04-27 19:34:32 +08:00 6
面试官:数据库怎么优化?
我:对不起,我们用的是 Oracle |
33
leafre 2021-04-27 19:57:32 +08:00
支撑几十亿数据,分库分表,业务复杂增加了多少成本
|
34
love 2021-04-27 19:58:54 +08:00 2
楼上说的太玄乎了吧,什么无索引都能正常用,什么不用分库分表,这还用的同一种计算机吗?还是有把 btree 什么的开源数据库用的算法踩到脚下的神奇算法?这种牛逼算法有专利开源界不能用?
|
35
JerryCha 2021-04-27 20:33:18 +08:00
花钱能让 Oracle 当孙子
花钱也能让自家开发者当孙子提高 MySQL 上限 但甲方家里没有开发者,甲方听说你们公司成立至今才不到十年,主要从事基于 MySQL 的数据库开发与服务,目前的客户业务规模不算很大。甲方也听说甲骨文已经有几十年的 DB 研发与调优经验,经过了好多大公司的认可。 甲方看了看账户上十一位数的流动资金,并快速地在脑海里算了一遍以去年营收计的每秒收入,给 Oracle 的销售打了个电话。 |
36
yzzwj 2021-04-27 21:22:59 +08:00
Oracle 收费,MySQL 不收费。出问题了可以甩锅给 Oracle,MySQL 只能自己背
|
37
oldmanong 2021-04-27 21:24:20 +08:00 via iPhone 1
估计楼主是年轻的程序员,MySQL 影响根深蒂固,对商业数据库没有概念。实际上在以前,MySQL 就是个玩具,还没有可以生产应用的版本。一直到 5.0 出来,才基本具备生产性。最近看到微博上有人问为什么手机不发明可拆卸电池,更换方便,很楼主的问题其实是一样的
|
38
CRVV 2021-04-27 21:30:31 +08:00 2
我没用过 Oracle,但对 PostgreSQL 还算比较熟悉
只要分别读一下 MySQL 和 PostgreSQL 的文档就能看到很大的差别了。 比如 TEXT JSON DATETIME 这些类型的定义和功能。 PostgreSQL 还带一大堆好像没人在用的高端功能。 在性能上,如果会手写稍微复杂一点的 SQL,随便玩一下就能看出来差别了,PostgreSQL 可能会快非常多。比如嵌套几层的子查询,比如多个表的 JOIN,比如有多个索引和多个筛选条件。 如果只在最普通的索引上写最简单的查询,SELECT * FROM table1 JOIN table 2 ON table1.id = table2.table1_id WHERE table1.id = x 这种的,传说 MySQL 比较快。 传说在这些方面 Oracle 都比 PostgreSQL 更厉害一些。 |
39
echowuhao 2021-04-27 21:37:02 +08:00
别的不说,oracle 的文档你看看比 mysql 好多少。
|
40
jones2000 2021-04-27 21:46:03 +08:00
优势就再一个字 “贵"
|
41
Wicked 2021-04-27 22:03:52 +08:00 via iPhone
学习了,我们做游戏的吊丝,从来没用过 oracle,以前是 mysql,现在是 mongo,路子野一点的甚至 sql server,经常被做 ERP 的同学耻笑…
|
42
JaguarJack 2021-04-27 22:04:55 +08:00 via iPhone
有那么多钱 二次开发 Mysql 就好了啊!还可以定制化,美不美?
|
43
ladypxy 2021-04-27 22:24:25 +08:00
之前公司 oracle 单个 DB 450T,用 mysql 的的话你优化看看
|
44
beginor 2021-04-27 22:36:35 +08:00 via Android
PostgreSQL 的 PostGIS 已经是事实的 GIS 标准了吧,Oracle 的 GeoSpatial 都不一定比得过, 在这一方面 MySQL 算是渣了吧
|
45
pabupa 2021-04-27 22:40:16 +08:00 2
不想(能)回答问题可以不回答。43个回复里没一个有用的。
|
46
jiangzhizhou 2021-04-27 23:12:13 +08:00
都在去 Oracle 化,然而我们在讨论 Oracle 和 MySQL 哪个更好的问题。
NoSQL 才是未来。 |
47
tohuer00 2021-04-27 23:21:27 +08:00 4
全方位的优势,除了价格。
但是价格成本这东西怎么说呢,之前银行、运营商学着互联网搞“去 IOE”,去了这么多年还去不掉,很大一个原因就是你要自己养一个玩得转 MySQL 的团队,去优化,去定制开发,这个成本未必比直接用 Oracle 低。当然了,系统规模不大直接用社区版的 MySQL 也够了。 再以我作为软件开发者角度的使用体验来说,Oracle 下 sql 语句想怎么写怎么写,只要不是索引没覆盖到使用的字段,性能基本没问题。MySQL 就不行了,必须要熟悉 MySQL 索引背后的机制,熟悉 sql 优化的逻辑,一个不小心性能就爆炸。 所以很多大厂的规范也是不允许在 MySQL 下做 3 张表以上的关联;从 Oracle 迁移到 MySQL 时把复杂 sql 语句做拆分也是必须的步骤。 很久以前做过的一些系统里面不少 sql 语句几十行,甚至上百行,先不讨论这种代码是不是很烂,但它在 Oracle 下跑起来性能就是没啥问题。 |
48
qile1 2021-04-27 23:52:55 +08:00 via Android
@tohuer00 oracle 包开发模式现在好多业务都在使用,而且开发玩的特别顺,反观一个之前厂家程序更新换代,还是用的原来的 sql server 数据库,里面加入了大量存储过程,主键全部 uuid,数据稍微一多就卡死,最后产品费了
我感觉数据量大还是 oracle 牛 |
49
geying 2021-04-28 03:07:53 +08:00
你要知道为什么贵
花钱买心安也是某些公司购买的理由 |
50
jhdxr 2021-04-28 03:20:36 +08:00
用 Oracle 写的应用,里边的 SQL 查询语句打印下来可能是几张 A4 纸,照样能出结果。换做 MySQL,我们可以先讨论一下尽可能不要用 join 的一百种理由。
|
51
Rocketer 2021-04-28 04:49:07 +08:00 via iPhone 1
之前工作过的一个公司,创业初期用的是免费的 mysql 。
后来业务发展比较好,数据过亿了,速度很慢,开发团队也搞不定,换了 oracle,没问题了。 再后来换了个牛 b 的技术总监,把 oracle 换成了 mysql 集群,速度也很快,但不省钱,因为技术总监太贵了。 所以这玩意就是个成本问题,有时买软件可能更省钱。 |
52
cwyalpha 2021-04-28 06:15:26 +08:00 via iPhone
和 db2 比怎样呢
|
53
cassyfar 2021-04-28 06:21:41 +08:00
毫无优势。现在都云计算了,oracle 又上不了云(除非用 oracle 自己的云),等着被淘汰吧。
|
54
b00tyhunt3r 2021-04-28 08:06:24 +08:00
@Wicked
wow 就用的 oracle |
55
CallMeSoul 2021-04-28 08:49:46 +08:00
现在公司以前都是`oracle`,然后不知怎么的法务收到了`oracle`的一个警告之类的东西吧,说要授权费反正很贵,然后就全转`PostgreSQL`了
|
56
xeneizes 2021-04-28 08:59:08 +08:00
出了事有人背锅
|
57
shakoon 2021-04-28 09:04:27 +08:00
@cwyalpha #51 二者我都用过,都是 pb 的量级,从性能上讲,没有发现明显的差异。但是 db2 的开发特别是维护远比 oracle 麻烦,对码农和 dba 都不如 oracle 友好,加上 plsql 这种神级 ide 的存在,市场已经用脚投票证明了这些。
|
58
Bromine0x23 2021-04-28 09:09:42 +08:00
MySQL 的优点在于能调整列的顺序 [狗头]
|
60
wangyzj 2021-04-28 09:13:59 +08:00
优势就是有人背锅
|
61
tairan2006 2021-04-28 09:16:39 +08:00
直接上 postgresql 就行,基于 pg 有一堆数据库,比如 timescaledb 、greenplum,比 oracle 的适应范围更广。
|
62
xtf2009 2021-04-28 09:35:47 +08:00 4
oracle 除了贵,对 mysql 那是全方面碾压的存在。
举个例子,我们之前发现一条慢查询,在服务器执行 15s,在本地数据库执行 57ms 。然后我把执行计划拉出来发现完全不一样,然后问了下同事,他本地数据库装的是 8.0,而服务器上面是 5.7. 为啥同样的表结构,同样的 sql,8.0 比 5.7 执行效率高了几十倍呢,因为 8.0 是 mysql 被 oracle 收购之后做的.... |
63
xtf2009 2021-04-28 09:38:35 +08:00 2
之前见过 oracle 上一条 sql 几千行,联查几十张表;一个存储过程上万行,整个业务模块写里面了。这些都是经过时间检验稳定跑了十几年的业务。
相比之下某公司直接禁止在 mysql 里用外键,禁止超过 3 个表联查。。。。你猜是因为没有业务需要,还是因为啥... |
70
holyzhou 2021-04-28 10:53:10 +08:00
大概十年前,有过一段学 oracle 的经历 当时教学的老头说的一句话我有点印象, 他说打个不恰当的比喻
"如果 mysql 是游艇,那么 oracle 相当于航空母舰" 但时过境迁,我个人觉得,基于 mysql 或者 说基于 mysql 的衍生版的一些方案,还是能满足大多数的业务场景的。 |
71
uselessVisitor 2021-04-28 11:32:51 +08:00
Oracle 可以甩锅(狗头
|
72
narrowei 2021-04-28 11:33:39 +08:00
支持面向对象?(应该没什么人用这 feature )
|
73
Rocketer 2021-04-28 11:34:51 +08:00 via iPhone
@chenzheyu 当我们说 mysql 时,说的就是那个社区版的东西,无论它叫什么名字。叫它 mysql 一是因为习惯,二是因为 driver 和方法名都还叫 mysql
|
74
kakaryan 2021-04-28 11:41:37 +08:00 3
20 年前,要做涉及到钱的商业业务,要用数据库 sql server 都不好使,必须是 oracle 、db2 。
机器都是 Sun 的 Solaris,IBM 的 AIX 。 那时候会玩这些机器,能操作这些数据库的人,可以拿 H1B 护照去美国工作。 那时候 Linux 内核版本还不到 2.6,对于商业应用来讲,就是玩具。 那时候 MySQL 默认连 innodb 都没有,只有赢弱的 MyISAM,连事务都不支持。 互联网浪潮起来之后,没那么多钱也想做商业产品,随着这波,X86 服务器、Linux 、MySQL 、PHP 、Java 都起来了。 20 年前就开始分道扬镳的不同人用的东西,拿到一起比较,真没特别大的意义。 |
75
tonzeng 2021-04-28 12:31:44 +08:00 4
数据库这个东西,其实上面性能什么的 数据量什么的都是浮云。
稳定、安全、数据不丢失才是重点。 当你数据库数据丢失或者数据库损坏,一大帮子人盯着你, 让你恢复数据的时候,rman 和 mysqlbinlog 就很明显的知道,氪金还是舒服啊。 btw:看到 74 楼说的 H1B,默默的捏碎了手里的手机。 当年被师兄骗去北京搞 Oracle,结果到北京没有几天,师兄拿着 H1B 去美国工作了。 |
76
no1xsyzy 2021-04-28 12:39:48 +08:00
|
77
Rocketer 2021-04-28 13:03:04 +08:00 via iPhone
@no1xsyzy “显然”我的意思是说 Oracle 版的 MySQL 不是我们常说的那个 MySQL,说 8.0 就跑题了
|
78
polymerdg 2021-04-28 15:25:54 +08:00
甩過 方便多了
|
79
SlipStupig 2021-04-28 16:24:00 +08:00
@zhaorunze 你的身份证信息就存在 Oracle 里面😊
|
80
SlipStupig 2021-04-28 16:28:40 +08:00
@dynastysea Oracle 并不是性能有多好功能有多先进,而是生态系统绑定,并且培养除了一批拿 Oracle 认证的人,这批人你让他用别的东西是不可能的,还有就是商业数据库很重要的是服务和定制化,从硬件到上次 SQL 设计都可以搞定,客户只要花钱就行了,对于业务相对固定的传统行业决不能接受一个或者多个员工把公司的业务系统把持
|
81
liprais 2021-04-28 16:34:36 +08:00 2
@SlipStupig oracle 性能还不强?
tpcc 榜单说明一切 |
82
zjsxwc 2021-04-28 16:36:10 +08:00
不试试 开源的 MariaDB 级兼容 MySQL 也兼容 Oracle,性能据说比 MySQL 好,创始人也是 MySQL 的原作者
https://mariadb.com/kb/en/sql_modeoracle/ |
83
zjsxwc 2021-04-28 17:27:46 +08:00
MariaDB 本身就兼容 MySQL
MariaDB 本身就支持 MySQL 收费企业版才有的 连接池 MariaDB 支持 时序存储 方便时序数据业务 MariaDB 支持 列存储 方便高性能分析报表 MariaDB 的视图是高性能优化过的 MariaDB 兼容 Oracle 的 SQL 语法,讨好 DBA MariaDB 有比 MySQL 更高性能的事务并发锁算法 |
87
gam2046 2021-04-28 18:11:48 +08:00
如果用过正版的 Windows,如果系统出现故障,是有 24 小时技术支持的。
这对于国企非常重要,一旦出现文件,有人背锅。背锅远比赔钱重要。 Oracle 出现故障,可以甩锅给 Oracle,Oracle 有专人负责处理,而 MySQL 出现问题,只能是自己的问题,你不能说这是社区的问题,因为这玩意本身就没有技术支持。 |
88
Co1a 2021-04-28 18:24:46 +08:00 via iPhone
只说自己看到的,门禁单表大概有 9000w
|
91
dynastysea 2021-04-28 19:06:35 +08:00
@SlipStupig 放心,这东西是自上而下的,尤其是这种国产完全可以代替的东西,在当前的背景下没有任何理由让他继续发展下去。事实上去 O 已经是实实在在发生的事了,不行你可以去问问移动、保险、银行这些传统 oracle 大户,新系统有多少还在采购 oracle,老系统是不是逐步在迁移。当然这个东西就像你说的生态绑定,进展不会那么快。
|
92
v2Geeker 2021-04-28 19:34:10 +08:00
我有个线上 mysql 实例,单表 3 亿 多数据,跑得好好的
|
95
rekulas 2021-04-28 22:30:20 +08:00
@xtf2009 难以相信会有这样大的区别,可能其他问题导致的可能性更大,磁盘 IO 性能是否同一水平,另外低版本 mysql 可能会存在索引失效的情况,如果能在同一机器重建相关表测试下可能更有说服力
|
96
LeeReamond 2021-04-28 23:33:02 +08:00 via Android
@chenqh 这些都是业务可优化的特例,幸存者偏差,我能跑三亿所以 mysql 能胜任三亿
|
97
exiaohao 2021-04-29 00:20:01 +08:00
IBM 相对自己做集群的优势在哪里(狗头
|
98
cubecube 2021-04-29 00:53:08 +08:00
sqlplus 就够别的数据库追 10 年的了
|
99
shutongxinq 2021-04-29 06:10:22 +08:00
快
|
100
rockcat 2021-04-29 07:30:52 +08:00
最大的优势在于:出了问题不用自己背锅!
|