数据库

 首页 > 数据库 > MongoDB > MongoDB和MySQL对比

MongoDB和MySQL对比

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

MongoDB和MySQL对比

还是在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和MySQL对比
分享到:
Spring与MongoDB的集成
Spring与MongoDB的集成 1.先上配置文件:                   2.我实际上没用配置文件进行注入,再上配置类: package com.licl; import java.net.UnknownHostException; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; i...
MongoDB和MySQL性能测试结果对比
MongoDB和MySQL性能测试结果对比 一、测试环境 1、测试服务器状况 共涉及4台测试服务器: 压力测试服务器 Web服务器 MongoDB服务器 MySQL服务器。 机器配置为: CPU:Intel(R) Core(TM)2 Duo CPU E7200 @ 2.53GHz RAM:8G DDR2 667 磁盘:SATA 操作系统: Redhat 5.5 1. 压力测...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……