为什么索引等相同下,数据量到达一定量级时候, 会听说 mongodb 比 mysql 快.

2019-02-27 16:10:50 +08:00
 cs8814336

一直没理解为什么当数据量达到一定程度时,mysql 会很慢,mongodb 会更快.以至于我到现在还没理解什么时候用 mongodb,什么时候用 mysql,不清楚两者的优势(底层原理优势).

从开发速度来讲,mysql 现在支持 json 字段,在一定角度来看一个表有了 json 字段就跟 mongodb 文档结构开发起来差不多方便了.

从底层原理看: mysql innodb 使用 b+tree, mongdb 默认使用 wiredtiger 使用 b-tree. b-tree 和 b+tree 有各自的优点,例如 b-tree 查询不一定需要找到叶子节点才能结束所以速度会快,但是 b+tree 能通过不存储数据的节点更快区分数据.

所以我想问大家 mongdb wiredtiger 能有什么 mysql innodb 没有的功能或者优势,底层原理原因又是什么. 就是某种因为底层设计的原因,根本导致了某些功能是别的数据库是不能有的,例如说便捷的文档结构之前 mysql 没有,但是这个可能不是底层设计导致的,只是 mysql 懒了,只要等到某天有人加上了这个功能就可以了.

提前感谢大家的回答.

10973 次点击
所在节点    MySQL
73 条回复
514146235
2019-02-27 16:23:31 +08:00
mongo 和 mysql 不能类比吧。场景不一样。mongo 是不支持事务的。虽然新版也支持了。但就好像 mysql 也是新版才支持的 json。干什么事情选什么工具。

如果你是个人业务,那么你可以闭着眼睛选。
cs8814336
2019-02-27 16:26:36 +08:00
@514146235 任何事情都有优缺点的,你在说不能类比的时候,暗中其实也说了,mongdb 是用在不支持事务的场景的,而 mysql 可以用在. 目的在于讨论是不是某一方可以完全替代另外一方,假如不是说下底层技术理由.
cs8814336
2019-02-27 16:27:24 +08:00
@514146235 其实我也是看到新版的发展,才越来越发现我对这 2 个数据库应用的地点越来越模糊,所以特来此请教一下
jorneyr
2019-02-27 16:58:48 +08:00
MongoDB 来个多表联合查询 =_=!!!
baojiweicn2
2019-02-27 17:00:20 +08:00
在我的实践中 mongo 多半是要比 mysql 慢的
baojiweicn2
2019-02-27 17:00:51 +08:00
mysql 做好索引还是很快的
NaVient
2019-02-27 17:02:20 +08:00
PostgreSQL 牛比一统江湖
jason19659
2019-02-27 17:05:30 +08:00
mongodb 这类的好像占得空间也大得多吧。。
janxin
2019-02-27 17:10:01 +08:00
@baojiweicn2 我们实践是 mongo 是比 mysql 快的,主要还是看场景啦
hilbertz
2019-02-27 17:11:36 +08:00
mongodb 连 acid 都实现不了,根本不是一个层次的东西,要快的话,可以用内存数据库
xkeyideal
2019-02-27 17:12:01 +08:00
@jorneyr 写起来很麻烦,不代表不能写
ke1e
2019-02-27 17:16:05 +08:00
mongodb 会将热点数据存储在内存中,这也是它需要大量内存的原因。所以你的同一条查询语句第二次会比第一次快很多
nosay
2019-02-27 17:16:15 +08:00
如果不知道是是用 mongodb 还是 mysql 的话,一般无脑上 mysql 就对了。
cs8814336
2019-02-27 17:17:44 +08:00
@ke1e 这个 innodb 也会有 innodb pool buffer
cs8814336
2019-02-27 17:18:25 +08:00
@hilbertz 你的回答让我认为 mysql 是完美取代 mongdb 的
cs8814336
2019-02-27 17:18:42 +08:00
@baojiweicn2 两个数据库都是有索引的
cs8814336
2019-02-27 17:19:11 +08:00
@janxin 什么场景 mongdb 会比 mysql 快
MeteorCat
2019-02-27 17:37:18 +08:00
游戏的频繁写入用 MongoDB 好点
cs8814336
2019-02-27 17:46:50 +08:00
@MeteorCat 频繁写入是大量插入的还是大量修改? 这样从底层分析是什么导致了这个点呢
hhhzccc
2019-02-27 17:51:36 +08:00
无脑 mysql。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/539297

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX