Mongodb有什么优势?相对关系型数据库如MySQL

本文对比分析了MongoDB与MySQL的性能,指出MongoDB在大数据量下的查询速度、写入性能等方面的优势,同时也指出了其缺乏事务支持及成熟维护工具等不足。

=====观点1

http://blog.sina.com.cn/s/blog_966e430001019s8v.html

优势:

性能优越:在使用场合下,千万级别的文档对象,近10G的数据,对有索引的ID的查询不会比mysql慢,而对非索引字段的查询,则是全面胜出。 mysql实际无法胜任大数据量下任意字段的查询,而mongodb的查询性能实在让我惊讶。写入性能同样很令人满意,同样写入百万级别的数 据,mongodb比我以前试用过的couchdb要快得多,基本10分钟以下可以解决。补上一句,观察过程中mongodb都远算不上是CPU杀手。

劣势:

mongodb不支持事务操作。
②MongoDB没有如MySQL那样成熟的维护工具,这对于开发和IT运营都是个值得注意的地方。


===观点2

 优势:
    快速!(当然,这和具体的应用方式有关,通常来说,它比一般的关系型数据库快5位左右。)
    很高的可扩展性 – 轻轻松松就可实现PB级的存储(但是可能我们并不需要PB级的存储,10TB可能就够了)
    他有一个很好的 replication 模式 (replica sets)
    有很完善的Java API
    他的存储格式是Json的,这对Java来说非常好处理,对javascirpt亦然。
    运维起来非常方便,你不用专门为它安排一个管理员。
    它有一个非常活跃的社区(我提出的一个bug在20分钟内就能得到修复。多谢Elliot)
    他的版本控制非常清楚。
    MongoDB 背后的公司(10gen)已经准备好了明天在 MongoDB 上面的投入的资金了。
 劣势:
    应用经验缺乏,我们都没有相关NoSQL 产品的使用经验。
    项目相对来说还比较新。
    和以往的存储相比,数据的关系性操作不再存在。









=======总结

优势:

查询、写入,速度快。

劣势:

最大的劣势,就是不能多表关联查询。mongodb只能进行单表查询,要多表关联查询,就得写程序进行查询。

### 关系型数据库分类 在讨论常见的数据库系统时,根据其数据模型的不同,可以将数据库分为**关系型数据库**(RDBMS)和**非关系型数据库**(NoSQL)。其中,关系型数据库使用表格结构来组织数据,并支持事务、ACID特性以及SQL查询语言进行数据操作[^1]。 #### MYSQL MySQL 是一种广泛使用的开源关系型数据库管理系统。它采用表格形式存储数据,支持SQL语句进行查询和管理操作,并提供事务处理能力。此外,MySQL 也具备良好的可扩展性和跨平台兼容性,适用于多种应用场景,包括Web应用、企业级信息系统等[^2]。 #### MONGODB MongoDB 属于非关系型数据库中的文档型数据库类别。与传统的关系型数据库不同,MongoDB 使用 BSON(Binary JSON)格式来存储数据记录,支持灵活的数据结构,适合处理大规模的非结构化或半结构化数据。MongoDB 不依赖传统的SQL语言进行数据操作,而是通过其特有的API实现数据读写和查询功能[^3]。 #### MARIADB MariaDBMySQL 的一个分支版本,由原 MySQL 开发者 Monty Widenius 创建。它保持了与 MySQL 度兼容的特性,同时在性能优化、新功能引入等方面进行了增强。MariaDB 同样属于关系型数据库范畴,支持 SQL 查询、事务处理等功能,适用于需要稳定可靠数据库服务的企业环境[^4]。 #### ORACLE Oracle 是一款功能强大的商业级关系型数据库系统,广泛应用于大型企业和关键任务系统中。它不仅支持标准 SQL 查询语言,还提供了级特性如分布式数据库架构、复杂事务控制机制以及度可扩展的安全性设置。Oracle 数据库性能、可用性和强大的数据管理能力著称[^1]。 综上所述: - **MySQL** 和 **MariaDB** 以及 **Oracle** 均为**关系型数据库** - **MongoDB** 属于**非关系型数据库** ```python # 示例:判断数据库类型 def is_relational_database(db_name): relational_dbs = ["mysql", "mariadb", "oracle"] return db_name.lower() in relational_dbs databases = ["MySQL", "MongoDB", "MariaDB", "Oracle"] for db in databases: if is_relational_database(db): print(f"{db} 是关系型数据库") else: print(f"{db} 不是关系型数据库") ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值