热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

MongoDB和MySQL对比

还是在2008年的时候,F5同学就和我提起过key-value的问题。这都2011年了,当时我没有太明白,只朦胧的觉得好像在说缓存最近有开发又和我提起了,我必须得关注下,否则我就out了,呵呵呵马上搜了下,目前吵的最热的是由10gen开发维护的MongDB数据库,随机down

还是在2008年的时候,F5同学就和我提起过key-value的问题。这都2011年了,当时我没有太明白,只朦胧的觉得好像在说缓存 最近有开发又和我提起了,我必须得关注下,否则我就out了,呵呵呵 马上搜了下,目前吵的最热的是由10gen开发维护的MongDB数据库,随机down了体会下

还是在2008年的时候,“F5”同学就和我提起过key-value的问题。这都2011年了,当时我没有太明白,只朦胧的觉得好像在说缓存

 
最近有开发又和我提起了,我必须得关注下,否则我就out了,呵呵呵
马上搜了下,目前吵的最热的是由10gen开发维护的MongDB数据库,随机down了体会下
答案是轻巧,速度快
下面就说一下我们初次见面的感受:
维护了一段时间的MySQL了,难免拿他们俩对比下,先上个直观的效果作为参考
MySQL——
mysql> select * from t;
+------+--------+------+
| id   | name   | age  |
+------+--------+------+
|    1 | 张三   |   30 |
|    2 | 李四   |   25 |
|    3 | 王五   |   12 |
|    4 | 赵六   |   57 |
+------+--------+------+
4 rows in set (0.00 sec)
MongDB——
{ "_id" : ObjectId("4cbfdaabab5abedbd22f0bc3"), "name" : "mongodb" }

{ "_id" : ObjectId("4cbfdaabab5abedbd22f0bc3"), "x" : 3 }
{ "_id" : ObjectId("4cbfdce3ab5abedbd22f0bc4"), "x" : 4, "j" : 1 }
{ "_id" : ObjectId("4cbfdce3ab5abedbd22f0bc5"), "x" : 4, "j" : 2 }
{ "_id" : ObjectId("4cc10b58dbf9242801dfacae"), "author" : "joe", "created" : "Sat Mar 28 2009 00:00:00 GMT+0800 (CST)", "title" : "Yet another blog post", "text" : "Here is the text...", "tags" : [ "example", "joe" ], "comments" : [
{
"author" : "jim",
"comment" : "I disagree"
},
{
"author" : "nancy",
"comment" : "Good post"
}
] }
下面在几个基础方面的东西做下对比:
1.存储的区别
MySQL——表数据以记录为单位,每条记录以N个字段列属性组成,每条记录有相同的字段属性
MongDB——文档数据以数组为单位,每条记录以N维数组组成,每个数组键值数不一定相同
2.命令工具的区别
MySQL——mysql-xxx/bin/下的mysql命令和perl工具有39个,在这就不列举了
MongDB——mongodb-linux-xxx/bin/下的工具只有11个,下面这些二进制命令从命名就可初步了解他们的作用,具体用法请参考官网指南http://www.mongodb.org
bsondump
mongo
mongod
mongodump
mongoexport
mongofiles
mongoimport
mongorestore
mongos
mongosniff
mongostat
3.命令行的区别
MySQL——在"mysql>"提示符下insert,update,delete,select,create,drop,alter,show...
MongDB——在">"提示符下db.dbname.save(),db.dbname.insert(),db.dbname.update,db.dbname.remove(),db.dbname.find(),show...
我们可以看出,MongDB都是使用函数调用的方式操作文档的;熟悉Memcached的同学看到find()方法的使用会觉得很熟悉,where 条件语句是通过在find()函数中指定的,order by,limit是通过find()函数的sort()和limit()函数处理的
后面管理的章节我还没有看呢,有兴趣的同学请重定向到官网^_^
另外MongoDB也支持主从Master-Slave架构和有限的双主Master-Master架构,不过目前只支持2个节点间的相互监听,等我尝试了再写...
总结下,网上看了些资料大多是拿MongDB和MySQL做比较的,前面我也是。其实这两个数据库并非一个必须替代掉另一个,在接触了MongoDB后感觉它不一定适应所有业务,应该是某种特殊业务更能体现出他的价值
所以,虽然国外一些网站已经陆续迁移到MongoDB,我们却不一定着急动手,技术还不是很成熟,会有哪些不稳定因素还有待观察考证。未来一段时间 内估计会是这两者合作的天下,彻底抛弃MySQL或者Oracle是不理智的,我们现在要做的是逐渐过渡到MySQL+MongDB,发挥他们的最大功效
一点心得,希望大家多多指教
mckobe23 发表于:2010.10.25 14:37 ::分类: (NoSQL) ::阅读:(85次) ::评论 (0)::引用 (0)
===========================================================
NoSQL学习——初次见面MongDB
===========================================================
还是在2008年的时候,“F5”同学就和我提起过key-value的问题。当时我没有太明白,只朦胧的觉得好像在说缓存
最近有开发又和我提起了,我必须得关注下,否则我就out了,呵呵呵
马上搜了下,目前吵的最热的是由10gen开发维护的MongDB数据库,随机down了体会下
答案是轻巧,速度快
下面就说一下我们初次见面的感受:
维护了一段时间的MySQL了,难免拿他们俩对比下,先上个直观的效果作为参考
MySQL——
mysql> select * from t;
+------+--------+------+
| id   | name   | age  |
+------+--------+------+
|    1 | 张三   |   30 |
|    2 | 李四   |   25 |
|    3 | 王五   |   12 |
|    4 | 赵六   |   57 |
+------+--------+------+
4 rows in set (0.00 sec)
MongDB——
{ "_id" : ObjectId("4cbfdaabab5abedbd22f0bc3"), "name" : "mongodb" }
{ "_id" : ObjectId("4cbfdaabab5abedbd22f0bc3"), "x" : 3 }
{ "_id" : ObjectId("4cbfdce3ab5abedbd22f0bc4"), "x" : 4, "j" : 1 }
{ "_id" : ObjectId("4cbfdce3ab5abedbd22f0bc5"), "x" : 4, "j" : 2 }
{ "_id" : ObjectId("4cc10b58dbf9242801dfacae"), "author" : "joe", "created" : "Sat Mar 28 2009 00:00:00 GMT+0800 (CST)", "title" : "Yet another blog post", "text" : "Here is the text...", "tags" : [ "example", "joe" ], "comments" : [
{
"author" : "jim",
"comment" : "I disagree"
},
{
"author" : "nancy",
"comment" : "Good post"
}
] }
下面在几个基础方面的东西做下对比:
1.存储的区别
MySQL——表数据以记录为单位,每条记录以N个字段列属性组成,每条记录有相同的字段属性
MongDB——文档数据以数组为单位,每条记录以N维数组组成,每个数组键值数不一定相同
2.命令工具的区别
MySQL——mysql-xxx/bin/下的mysql命令和perl工具有39个,在这就不列举了
MongDB——mongodb-linux-xxx/bin/下的工具只有11个,下面这些二进制命令从命名就可初步了解他们的作用,具体用法请参考官网指南http://www.mongodb.org
bsondump
mongo
mongod
mongodump
mongoexport
mongofiles
mongoimport
mongorestore
mongos
mongosniff
mongostat
3.命令行的区别
MySQL——在"mysql>"提示符下insert,update,delete,select,create,drop,alter,show...
MongDB——在">"提示符下db.dbname.save(),db.dbname.insert(),db.dbname.update,db.dbname.remove(),db.dbname.find(),show...
我们可以看出,MongDB都是使用函数调用的方式操作文档的;熟悉Memcached的同学看到find()方法的使用会觉得很熟悉,where 条件语句是通过在find()函数中指定的,order by,limit是通过find()函数的sort()和limit()函数处理的
后面管理的章节我还没有看呢,有兴趣的同学请重定向到官网^_^
另外MongoDB也支持主从Master-Slave架构和有限的双主Master-Master架构,不过目前只支持2个节点间的相互监听,等我尝试了再写...
总结下,网上看了些资料大多是拿MongDB和MySQL做比较的,前面我也是。其实这两个数据库并非一个必须替代掉另一个,在接触了MongoDB后感觉它不一定适应所有业务,应该是某种特殊业务更能体现出他的价值
所以,虽然国外一些网站已经陆续迁移到MongoDB,我们却不一定着急动手,技术还不是很成熟,会有哪些不稳定因素还有待观察考证。未来 一段时间内估计会是这两者合作的天下,彻底抛弃MySQL或者Oracle是不理智的,我们现在要做的是逐渐过渡到MySQL+MongDB,发挥他们的 最大功效

推荐阅读
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了Mongodb副本集+分片集群搭建相关的知识,希望对你有一定的参考价值。环境需求: ... [详细]
  • 环境配置tips
    一、MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样的:  1、数据库名与表名是严格区分大小写的;  2、表的别名是严格区分大小写的& ... [详细]
  • 数据库基本介绍
    1、数据库基本知识概念:数据库:database(DB),是一种存储数据的仓库数据库是根据数据结构组织、存储和 ... [详细]
  • hackingTeam是如何被黑的
    hackingTeam是如何被黑的 ... [详细]
  • 【实战】MongoDB 分片原理概述 + 部署 MongoDB 分片群集 +【源码包】
    目录:1·MongoDB分片概述2·部署MongoDB分片群集3·MongoDB分片管理4·推荐MongoDB、MySQL基础文章5·文章总结MongoDB分片概述1)什么是分片: ... [详细]
  • 架构师必读:日均500万数据,如何进行数据存储选型?
    点击上方关注我,选择“置顶或者星标”作者:麦田里的老农来源:https:zhuanlan.zhihu.comp37964096小编公司有一 ... [详细]
  • 如今ApacheHadoop已成为大数据行业发展背后的驱动力。Hive和Pig等技术也经常被提到,但是他们都有什么功能,为什么会需要奇怪的名字(如Oozie,ZooKeeper、Flume) ... [详细]
  • 一、滴滴智慧交通部-php工程师D7-D91. 负责功能模块的开发和详细设计,参与需求分析,系统分析及详细设计;2. 高性能Web应用的架构设计和优化;3. 负责研发实施过程中的模 ... [详细]
  • 腾讯安全平台部招聘安全工程师和数据分析工程师
    腾讯安全平台部正在招聘安全工程师和数据分析工程师。安全工程师负责安全问题和安全事件的跟踪和分析,提供安全测试技术支持;数据分析工程师负责安全产品相关系统数据统计和分析挖掘,通过用户行为数据建模为业务决策提供参考。招聘要求包括熟悉渗透测试和常见安全工具原理,精通Web漏洞,熟练使用多门编程语言等。有相关工作经验和在安全站点发表作品的候选人优先考虑。 ... [详细]
  • 本文介绍了关系型数据库和NoSQL数据库的概念和特点,列举了主流的关系型数据库和NoSQL数据库,同时描述了它们在新闻、电商抢购信息和微博热点信息等场景中的应用。此外,还提供了MySQL配置文件的相关内容。 ... [详细]
  • PHP组合工具以及开发所需的工具
    本文介绍了PHP开发中常用的组合工具和开发所需的工具。对于数据分析软件,包括Excel、hihidata、SPSS、SAS、MARLAB、Eview以及各种BI与报表工具等。同时还介绍了PHP开发所需的PHP MySQL Apache集成环境,包括推荐的AppServ等版本。 ... [详细]
  • nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 一、前言在数据库中,慢查询日志通常是用来进行优化数据库,MySQL中存在慢查询,Mongodb中也是如此。在Mongo中的慢查询属于Mon ... [详细]
  • 前面刚有AWS开战MongoDB,双方“隔空互呛”,这厢又曝出2亿+简历信息泄露——MongoDB的这场开年似乎“充实”得过分了些。长期以来,作为“最受欢迎的NoSQL数据库”,M ... [详细]
  • 开发笔记:Memcached高性能内存对象缓存系统
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Memcached高性能内存对象缓存系统相关的知识,希望对你有一定的参考价值。一、Memcached概述 ... [详细]
author-avatar
夫功的美丽家园
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有