mongodb入门汇总

与关系型数据库相比,MongoDB的优点:

①弱一致性(最终一致),更能保证用户的访问速度

②文档结构的存储方式,能够更便捷的获取数据。

③内置GridFS,支持大容量的存储。

④内置Sharding,提供基于RangeAuto Sharding机制:一个collection可按照记录的范围,分成若干个段,切分到不同的Shard上。

⑤第三方支持丰富。(这是与其他的NoSQL相比,MongoDB也具有的优势)

⑥性能优越

与关系型数据库相比,MongoDB的缺点:

①mongodb不支持事务操作。

②mongodb占用空间过大。440W—20G

③MongoDB没有如MySQL那样成熟的维护工具,这对于开发和IT运营都是个值得注意的地方。

数据测试

数据库的平均插入速率:MongoDB不指定_id插入 > MySQL不指定主键插入 > MySQL指定主键插入 > MongoDB指定_id插入。

MongoDB在指定_id与不指定_id插入时速度相差很大,而MySQL的差别却小很多。

测试结论

1.相比较MySQL,MongoDB数据库更适合那些读作业较重的任务模型。MongoDB能充分利用机器的内存资源。如果机器的内存资源丰富的话,MongoDB的查询效率会快很多。

2.在带”_id”插入数据的时候,MongoDB的插入效率其实并不高。如果想充分利用MongoDB性能的话,推荐采取不带”_id”的插入方式,然后对相关字段作索引来查询

适用场合:

1.网站数据:Mongo非常适合实时的插入,更新与查询,并具备网站实时数据存储所需的复制及高度伸缩性。

2.缓存:由于性能很高,Mongo也适合作为信息基础设施的缓存层。在系统重启之后,由Mongo搭建的持久化缓存层可以避免下层的数据源 过载。

3.大尺寸,低价值的数据:使用传统的关系型数据库存储一些数据时可能会比较昂贵,在此之前,很多时候程序员往往会选择传统的文件进行存储。

4.高伸缩性的场景:Mongo非常适合由数十或数百台服务器组成的数据库。Mongo的路线图中已经包含对MapReduce引擎的内置支持。

5.用于对象及JSON数据的存储:Mongo的BSON数据格式非常适合文档化格式的存储及查询。

主体还是用mysql  涉及个人信息的用mongo做尝试,mongo数据可能会丢失,尽量不要应用在业务主体上

 

 

mysql 和 mongo db 语法对比

MySQL:

SELECT * FROM user

Mongo:

db.user.find()

MySQL:

SELECT * FROM user WHERE name = ’starlee’

Mongo:

db.user.find({‘name’ : ’starlee’})

插入:

MySQL:

INSERT INOT user (`name`, `age`) values (’starlee’,25)

Mongo:

db.user.insert({‘name’ : ’starlee’, ‘age’ : 25})

如果你想在MySQL里添加一个字段,你必须:

ALTER TABLE user….

但在MongoDB里你只需要:

db.user.insert({‘name’ : ’starlee’, ‘age’ : 25, ‘email’ : ’[email protected]’})

删除:

MySQL:

DELETE * FROM user

Mongo:

db.user.remove({})

MySQL:

DELETE FROM user WHERE age < 30

Mongo:

db.user.remove({‘age’ : {$lt : 30}})

$gt : > ; $gte : >= ; $lt : < ; $lte : <= ; $ne : !=

更新:

MySQL:

UPDATE user SET `age` = 36 WHERE `name` = ’starlee’

Mongo:

db.user.update({‘name’ : ’starlee’}, {$set : {‘age’ : 36}})

MySQL:

UPDATE user SET `age` = `age` + 3 WHERE `name` = ’starlee’

Mongo:

db.user.update({‘name’ : ’starlee’}, {$inc : {‘age’ : 3}})

MySQL:

SELECT COUNT(*) FROM user WHERE `name` = ’starlee’

Mongo:

db.user.find({‘name’ : ’starlee’}).count()

MySQL:

SELECT * FROM user limit 10,20

Mongo:

db.user.find().skip(10).limit(20)

MySQL:

SELECT * FROM user WHERE `age` IN (25, 35,45)

Mongo:

db.user.find({‘age’ : {$in : [25, 35, 45]}})

MySQL:

SELECT * FROM user ORDER BY age DESC

Mongo:

db.user.find().sort({‘age’ : -1})

MySQL:

SELECT DISTINCT(name) FROM user WHERE age > 20

Mongo:

db.user.distinct(‘name’, {‘age’: {$lt : 20}})

MySQL:

SELECT name, sum(marks) FROM user where name='foo' GROUP BY name

Mongo:

db.user.group({

key : {‘name’ : true},

cond: {‘name’ : ‘foo’},

reduce: function(obj,prev) { prev.msum += obj.marks; },

initial: {msum : 0}

});

MySQL:

SELECT name FROM user WHERE age < 20

Mongo:

db.user.find(‘this.age < 20′, {name : 1})

发现很多人在搜MongoDB循环插入数据,下面把MongoDB循环插入数据的方法添加在下面:

for(var i=0;i<100;i++)db.test.insert({uid:i,uname:’nosqlfan’+i});

上面一次性插入一百条数据,大概结构如下:

{ “_id” : ObjectId(“4c876e519e86023a30dde6b8″), “uid” : 55, “uname” : “nosqlfan55″ }

{ “_id” : ObjectId(“4c876e519e86023a30dde6b9″), “uid” : 56, “uname” : “nosqlfan56″ }

{ “_id” : ObjectId(“4c876e519e86023a30dde6ba”), “uid” : 57, “uname” : “nosqlfan57″ }

{ “_id” : ObjectId(“4c876e519e86023a30dde6bb”), “uid” : 58, “uname” : “nosqlfan58″ }

{ “_id” : ObjectId(“4c876e519e86023a30dde6bc”), “uid” : 59, “uname” : “nosqlfan59″ }

{ “_id” : ObjectId(“4c876e519e86023a30dde6bd”), “uid” : 60, “uname” : “nosqlfan60″ }

1.http://www.cnblogs.com/lihaozy/p/3461394.html mysql与mongo优缺点

2.http://blog.csdn.net/clh604/article/details/19608869 mysql与mongo优缺点

3.http://www.cnblogs.com/lidaohang/archive/2011/06/01/2066079.html mysql与mongo语法快速切换

4.http://www.cnblogs.com/lipan/archive/2011/03/08/1966463.html  mongo示例

5.http://ace105.blog.51cto.com/639741/748581 mongodb查询慢的原因,并非mongodb本身问题,也非网络,非数据问题指点。,而是在于没有正确使用好客户端连接

6.http://cache.baiducontent.com/c?m=9f65cb4a8c8507ed4fece763105392230e54f7273c809a027fa3c215cc791d5c4163e9b824365559939373384aee0a02fdf14665477737c690dffe4acacd943f2ef83042750bf53205d269b8bb4732b02b875b99f044bbefe733e3f38483c85422dd22056df4f2&p=c467c30085cc43fe0abd9b7e0d1c88&newp=aa7fd65d85cc43b708e2947e075c8a231610db2151d6d51f67&user=baidu&fm=sc&query=mysql%BF%C9%D2%D4%D7%AA%B3%C9mongodb+%C2%F0&qid=b1fa5fba00008efc&p1=8 

7.可视化工具连接http://www.newasp.net/soft/75669.html

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(mongodb,NoSQL)