关于 mongodb 丢数据的问题,到底要到多大数量级才会考虑这个问题?

2024-09-06 08:04:12 +08:00
 HaroldFinchNYC

目前我在写一个 CMS ,用 mongodb ,但网上有人说 mongodb 丢数据的问题

https://mp.weixin.qq.com/s/I3ug7Qv9jz3-uD3x_N1jKw

这个文章把 mongod 狠狠批评了一番

所以想请教大家一个问题:mongodb 要到多大数量级才会考虑这些性能啊、丢数据啊之类的问题

我觉得我一个 cms ,个人写博客, 充其量也就 1000 篇文章,

就算做成电商,一个独立站估计也就 10 万商品

所以这个数据量似乎比较小

需要担心这些问题吗?谢谢

谢谢

5851 次点击
所在节点    程序员
43 条回复
ZGame
2024-09-06 08:15:58 +08:00
不需要吧... 你看文章里都说了 mongodb 的分析引擎是 pg 。。。
sagaxu
2024-09-06 08:20:53 +08:00
数据量都没过千万,MySQL 的 JSON 类型又不是不能用,MongoDB 导出表的索引还得自己写代码实现
wupher
2024-09-06 08:46:26 +08:00
之前负责的项目,最高数据量达 7 亿,使用 MongoDB Sharding ,没有出现丢数据的问题。

我们用的也是 4.2 系列的版本。当时还没有 5 版本。

不过,后续数据进一步攀升,我们也按领导要求迁移到了 Cassandra 。
egen
2024-09-06 08:49:08 +08:00
这个 非法加冯 是 pg 的狂热爱好者,个人或者小公司不用担心 mongodb 的性能问题
wqhui
2024-09-06 09:17:13 +08:00
没丢过,只是因为非结构化导致新旧数据维护麻烦,对 mongo 来说同 collection 也不保证结构一样,如果没有强制每次结构变更及时维护旧数据,等某天取数使用的时候会出来一堆各个版本的结构,最典型的是字段 A 远古版本是 int ,最新版是 varchar ,取数出来处理就出错了,一般只适合用于纯查询、存储
demon1991yl
2024-09-06 09:21:06 +08:00
这个作者典型的眼红了吧,用了这么久 mongodb ,没出现过这种问题,而且你这个量级,定期做备份,没啥问题的
ForrestWang
2024-09-06 09:23:25 +08:00
如果会有丢数据问题怎么可能这么多人用,最早之前我们车联网的上报数据都存在 mongodb ,没出现过这个问题-_-
sunny352787
2024-09-06 09:48:01 +08:00
丢数据这么严重的指控,mongodb 可以告他诽谤了
chendy
2024-09-06 09:51:46 +08:00
MongoDB 丢数据的问题,少说十年前就无了啊…
HaroldFinchNYC
2024-09-06 10:03:52 +08:00
@demon1991yl
@egen

谢谢,我也觉得,数据量小的情况下,没那么多顾虑
ellermister
2024-09-06 10:07:19 +08:00
@wqhui 性能先不担心。


我很好奇 mongo 怎么解决新老数据字段意义不一样,新老版本字段数不一样的问题?


这个到底适合什么样的业务?

我有用过几次 mongo ,因为动不动炸了,重启还原数据报错很难解决,没深入就放弃了。

即使类似我长期用的 es 也要在业务更新时使用索引迁移,字段重新设定约束来适配新的业务。
那 mongo 没有 es 分词特性,又没有关系数据库的约束严谨,他适用于什么场景呢?
flmn
2024-09-06 10:19:25 +08:00
首选 MySQL 和 PostgreSQL ,只有他们搞不定了(好像并没有)再考虑 MongoDB 。
KagurazakaNyaa
2024-09-06 10:22:43 +08:00
没听说过正常运行有这种问题啊,mongo 最大的问题是在异常断电后数据很容易炸,有时候文件系统都没事它就炸了,经常备份和做 replicaset 都可以解决这个问题
crysislinux
2024-09-06 10:27:27 +08:00
@ellermister 关系型数据库怎么解决字段变化 mongodb 就怎么解决呗。简单来说就是加新的字段,然后跑个任务把老字段的内容同步到新字段。无非就是 mongodb 没有强制性。
KagurazakaNyaa
2024-09-06 10:30:35 +08:00
@ellermister mongodb 也有 schema validation 支持,不过只能验证新插入的文档,你可以把旧文档都读出来 migration 成新的格式再 update 回去
catinsides
2024-09-06 10:44:14 +08:00
我用了七八年 MongoDB ,你可以说他内存占用高,慢,丢数据我倒是头一次听说。
FlashEcho
2024-09-06 10:58:00 +08:00
真的会丢数据吗? nosql 数据库只是不保证 100%的一致性,但是丢数据这个也太离谱了吧
clf
2024-09-06 11:06:07 +08:00
目前还没丢过。
PTLin
2024-09-06 11:06:09 +08:00
毕竟那个文章作者冯若航就是靠 PostgreSQL 赚钱的,可以看看他之前的文章,他说出什么话我都感觉不奇怪。
snipking
2024-09-06 11:07:01 +08:00
TB 级数据多节点 sharding ,运行了大概 8 年了,从没出现过丢数据或者损坏的问题,性能线性,吞吐量也不错,只要用对了场景没毛病

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

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

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

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

© 2021 V2EX