转 http://blog.nosqlfan.com/html/2215.html
原文标题是《Is MongoDB the next big thing?》,请允许我把big thing等同于目前应用最广泛的开源数据库 MySQL。作为当下最热门的NoSQL之一,下面我们就来看看它具体的优点与不足。
MongoDB的特性
- 简单的查询语句,没有Join操作
- 文档型存储,其数据是用二进制的Json格式Bson存储的。其数据就像Ruby的hashes,或者Python的字典,或者PHP的数组
- Sharding,MongoDB提供auto-sharding实现数据的扩展性
- GridFS,MongoDB的提供的文件存储API
- 数组索引,你可以对文档中的某个数组属性建立索引
- MapReduce,可以用于进行复杂的统计和并行计算
- 高性能,通过使用mmap和定时fsync的方法,避免了频繁IO,使其性能更高
MongoDB的优点
- 高性能,速度非常快(如果你的内存足够的话)
- 没有固定的表结构,不用为了修改表结构而进行数据迁移
- 查询语言简单,容易上手
- 使用Sharding实现水平扩展
- 部署方便
使用MongoDB,你得记住以下几点:
- MongoDB 假设你有大磁盘空间
- MongoDB 假设你的内存也足够大于放下你的热数据
- MongoDB 假设你是部署在64位系统上的(32位有2G的限制,试用还可以)
- MongoDB 假设你的系统是little-endian的
- MongoDB 假设你有多台机器(并不专注于单机可靠性)
- MongoDB 假设你希望用安全换性能,同时允许你用性能换安全
MongoDB在下面领域不太擅长
- 不太稳定,特别是auto-sharding目前还有很多问题
- 不支持SQL,这意味着你很多通过SQL接口的工具不再适用
- 持久化,MongoDB单机可靠性不太好,宕机可能丢失一段时间的数据
- 相关文档比较少,新功能都有这个问题
- 相关人才比较难找,这也是新功能的问题之一
分享到:
相关推荐
**Koa**: Koa是下一代Node.js Web框架,它的核心特点是去除了Express中的Callback Hell,利用ES6的Generator特性(或async/await)来简化错误处理和异步流程控制。Koa通过洋葱模型处理中间件,使得编写服务端代码...
Koa2是基于Node.js的下一代Web应用框架,由Express团队的成员创建。Koa2通过使用async/await处理异步操作,简化了中间件的编写,提高了代码的可读性和可维护性。它的设计目标是提供更小、更富有表现力、更健壮的基础...
"Priorities: 下一代任务管理(最终)" 是一个旨在提升效率的网络应用程序,最终将发展为移动应用,目标是帮助用户更好地管理他们的任务和时间。这个项目的核心是利用先进的技术来实现高效的任务分配和跟踪,以适应...
4. **Koa**:Koa是下一代Node.js Web框架,由Express团队成员创建。Koa设计思想更为现代,它摒弃了Express中的许多内置功能,鼓励开发者使用ES6的特性,如async/await,使代码更简洁、易读。 5. **MySQL**:MySQL是...
Flynn附带了高度可用的数据库设备,包括PostgreSQL,MySQL和MongoDB。 最终,我们希望Flynn成为开发人员和运维团队开发,部署和管理正在运行的软件的唯一工具。 您可以在了解有关Flynn的更多信息。 Flynn网站上...
它可以与多种数据库系统兼容,如MySQL、PostgreSQL、MongoDB等,简化了数据访问层的开发。 5. **TypeDI**: 类似于Java的Spring框架中的依赖注入,TypeDI是Node.js和TypeScript的依赖注入库。它使得组件之间的解耦...
每当您考虑使用MySQL或MongoDB或Neo4j以及Apache或Nginx或Django开发服务时,都可以使用Tinychain更快,更可扩展地完成同一件事。 Tinychain的主要优势在于其对跨服务交易的自动,即装即用的支持-这意味着它将传统...
DBeaver 通过 JDBC 连接到数据库,可以支持几乎所有的数据库产品,包括:MySQL、PostgreSQL、MariaDB、SQLite、Oracle、Db2、SQL Server、Sybase、MS Access、Teradata、Firebird、Derby 等等。商业版本更是可以支持...
Koa.js是由Express.js团队开发的下一代Web应用框架,它基于Node.js的异步事件驱动模型。Koa通过使用async/await语法糖使得中间件处理更加简洁和易读,降低了错误处理的复杂性。 1. **MySQL数据库**:MySQL是广泛...
Koa是Express的下一代框架,由Express团队开发。它提供了更简洁的中间件系统,使你可以更容易地处理HTTP请求和响应。Koa的核心特点是不捆绑任何中间件,允许你自由选择并组合不同的中间件来构建应用。 【MongoDB】 ...
适用于 Rust、Node.js 和 Python 的下一代 Web 框架。极具创新的受GraphQL和Prisma启发的结构定义.自动的数据库迁移。支持Rust、Node.js和Python。支持MySQL,PostgreSQL,SQLite和MongoDB。生成的ORM类型定义。生成...
MySQL Workbench 是下一代的可视化数据库设计、管理工具,具有开源和商业化的两个版本。 2. Navicat Navicat 是一套快速、可靠并价格相宜的资料库管理工具。它提供了简化资料库的管理及降低系统管理成本的功能。...
NewSQL数据库旨在解决传统关系型数据库在大数据量和高并发环境下的性能瓶颈,同时保持对ACID(原子性、一致性、隔离性、持久性)事务的支持。以下是关于NewSQL数据库架构和实现的详细知识: 1. **ACID支持**:...
百度的下一代离线存储计算系统.pdf 主流开源NoSQL及分布式存储的应用与思考.pdf 腾讯在线交易平台统一数据层高一致性解决方案.pdf NoSQL一致性实践:我对CAP的一点认识.pdf MongoDB at Qihoo 360.pdf MySQL Cluster...
百度的下一代离线存储计算系统.pdf 主流开源NoSQL及分布式存储的应用与思考.pdf 腾讯在线交易平台统一数据层高一致性解决方案.pdf NoSQL一致性实践:我对CAP的一点认识.pdf MongoDB at Qihoo 360.pdf MySQL Cluster...
百度的下一代离线存储计算系统.pdf 主流开源NoSQL及分布式存储的应用与思考.pdf 腾讯在线交易平台统一数据层高一致性解决方案.pdf NoSQL一致性实践:我对CAP的一点认识.pdf MongoDB at Qihoo 360.pdf MySQL Cluster...
8.百度的下一代离线存储计算系统.pdf 9.主流开源NoSQL及分布式存储的应用与思考.pdf 10.腾讯在线交易平台统一数据层高一致性解决方案.pdf 11.NoSQL一致性实践:我对CAP的一点认识.pdf 12.MongoDB at Qihoo 360.pdf ...
- **Koa**:Koa是Express的作者创建的下一代Web框架,使用了Promise和async函数,更加轻量级。 8. **数据库连接**: - **MongoDB**:Node.js可以使用如mongoose等库与MongoDB进行交互,实现NoSQL数据库操作。 - ...