视觉中国MongoDB应用实战:从MySQL到NoSQL的转型
需积分: 15 120 浏览量
更新于2024-07-26
收藏 2.91MB PDF 举报
"视觉中国的MongoDB应用实践"
在2011年的QCon Beijing大会上,视觉中国的代表潘凡分享了他们采用MongoDB作为数据库系统的实践经验。MongoDB是一个流行的NoSQL数据库,以其灵活性、可扩展性和高性能而受到关注。在这个演讲中,潘凡探讨了为何视觉中国选择了MongoDB,以及他们在原有MySQL架构遇到的问题和解决方案。
首先,视觉中国选择MongoDB并不是出于追赶NoSQL潮流或被其自动分片等特性所吸引。在2008年,这些特性还不是主流,他们的主要目标是寻找一个可靠的分布式键值存储系统,以解决MySQL在处理特定问题时的挑战。原有的架构基于MySQL的主主复制配置,通过MMM(Multi-Master Replication Manager)实现高可用性。然而,这个架构在面对多数据源、灵活schema需求以及频繁属性更新时显得不够灵活。
新的业务需求要求系统能适应多数据源,拥有灵活且不确定的schema,以应对不同模型下字段和属性数量的变化,同时还需要频繁更新属性。在MySQL环境下,这可能导致查询复杂度增加,影响性能,并可能使查询缓存频繁失效。
为了应对这些问题,视觉中国考虑了两种可能的解决方案:一是使用文本字段存储JSON数据,这种方法提供了更高的schema自由度,但检索效率较低;二是使用关联表,虽然限制了schema的自由度,但更新操作会更频繁,导致查询缓存失效。
在评估了现有的MySQL解决方案后,他们意识到需要一个持久化的分布式键值存储系统,以替代Memcached,因为Memcached存在缓存失效和内存限制的问题。他们设定了选择新数据库系统的标准,包括对PHP和Perl的良好支持、接近Memcached的性能、支持分布式集群、资源效率高以及有清晰的文档和成功案例。
在一系列候选数据库中,如Flare、Repcached、Redis和TC/TT,他们最初选择了MongoDB。MongoDB因其强大的文档对象模型、支持动态schema和分布式架构,能够满足视觉中国的需求,特别是对于处理结构不确定、更新频繁的数据场景,MongoDB展现出了优势。
通过引入MongoDB,视觉中国能够构建出一个新的架构,其中包含多个KV实例,以提供更高效的数据存储和检索能力。这个决策不仅解决了他们原有的问题,还为未来的扩展性和适应性奠定了基础。视觉中国的MongoDB应用实践是一个典型的NoSQL数据库在解决传统关系型数据库痛点上的成功案例,展示了MongoDB在处理非结构化和半结构化数据时的强大功能。
2011-05-07 上传
228 浏览量
2014-09-23 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
gaoxw1985
- 粉丝: 1
- 资源: 11
最新资源
- RSVP协议的多媒体综合服务机制研究
- 计数器实验——数字电路实验
- VB入门教程.asp.doc(入门级哦)
- 51单片机C语言入门教程.pdf
- 46家各大公司笔试题
- JavaScript DOM 编程艺术.pdf
- Keil uv3快速入门.pdf
- 微控制器 (MCU) 破解秘笈之中文有删节版
- GIVEIO IO驱动的源代码
- 微软应用程序架构指南
- C#串口操作串口操作串口操作
- fsadfdsaarkdffasdfdggdd桌面\C++ STL使用手册.pdfASP.NET新闻、论坛、电子商城、博客源码 很经典的php面向对象教程
- C语言上机南开100题(2009年终结修订word版)
- 软件界面设计及编码标准规范
- 总线的简单项排球介绍
- Gzip压缩.docx