mysql 与mongodb的特点与优劣
来源:互联网 发布:信阳师范网络教学平台 编辑:程序博客网 时间:2024/05/12 18:17
mysql 与mongodb的特点与优劣
首先我们来分析下mysql 与mongodb的特点与优劣。
下面是我以前做的ppt的部分截图。
再来分析下应用场景,
a.如果需要将mongodb作为后端db来代替mysql使用,即这里mysql与mongodb 属于平行级别,那么,这样的使用可能有以下几种情况的考量:
(1)mongodb所负责部分以文档形式存储,能够有较好的代码亲和性,json格式的直接写入方便。(如日志之类)
(2)从data models设计阶段就将原子性考虑于其中,无需事务之类的辅助。开发用如nodejs之类的语言来进行开发,对开发比较方便。
(3)mongodb本身的failover机制,无需使用如MHA之类的方式实现。
这种情况也是不少的,我手上的游戏就是有nodejs+mongodb的,用户总量也是千万级别的,流水什么还不错。
b.将mongodb作为类似redis ,memcache来做缓存db,为mysql提供服务,或是后端日志收集分析。
考虑到mongodb属于nosql型数据库,sql语句与数据结构不如mysql那么亲和 ,也会有很多时候将mongodb做为辅助mysql而使用的类redis memcache 之类的缓存db来使用。
亦或是仅作日志收集分析。
问题2:
楼主可能没有观察仔细。
我做了下实验。例子如下:
> db.a.save({"a":3});
> db.a.save({"a":4});
> db.a.find()
{ "_id" : ObjectId("540826eb0e83c3fb7ea07a0f"), "a" : 3 }
{ "_id" : ObjectId("5416869a9fa8a67830dfc9a8"), "a" : 4 }
> db.a.find().sort({a:1})
{ "_id" : ObjectId("540826eb0e83c3fb7ea07a0f"), "a" : 3 }
{ "_id" : ObjectId("5416869a9fa8a67830dfc9a8"), "a" : 4 }
> db.a.find().sort({a:-11})
{ "_id" : ObjectId("5416869a9fa8a67830dfc9a8"), "a" : 4 }
{ "_id" : ObjectId("540826eb0e83c3fb7ea07a0f"), "a" : 3 }
> db.system.profile.find({"ns":"test.a"})
{ "op" : "query", "ns" : "test.a", "query" : { "query" : { }, "orderby" : { "a" : 1 } }, "ntoreturn" : 0, "ntoskip" : 0, "nscanned" : 2, "scanAndOrder" : true, "keyUpdates" : 0, "numYield" : 0, "lockStats" : { "timeLockedMicros" : { "r" : NumberLong(156), "w" : NumberLong(0) }, "timeAcquiringMicros" : { "r" : NumberLong(4), "w" : NumberLong(3) } }, "nreturned" : 2, "responseLength" : 86, "millis" : 0, "ts" : ISODate("2014-09-15T06:26:36.681Z"), "client" : "127.0.0.1", "allUsers" : [ ], "user" : "" }
{ "op" : "query", "ns" : "test.a", "query" : { "query" : { }, "orderby" : { "a" : -11 } }, "ntoreturn" : 0, "ntoskip" : 0, "nscanned" : 2, "scanAndOrder" : true, "keyUpdates" : 0, "numYield" : 0, "lockStats" : { "timeLockedMicros" : { "r" : NumberLong(120), "w" : NumberLong(0) }, "timeAcquiringMicros" : { "r" : NumberLong(4), "w" : NumberLong(3) } }, "nreturned" : 2, "responseLength" : 86, "millis" : 0, "ts" : ISODate("2014-09-15T06:26:39.125Z"), "client" : "127.0.0.1", "allUsers" : [ ], "user" : "" }
sort的使用并不是放在query中的,而是有一个orderby的单独字段来存放。如上述红字部分。
- mysql 与mongodb的特点与优劣
- mysql 与mongodb的特点与优劣
- mysql 与mongodb的特点与优劣
- mysql存储引擎:InnoDB和MyISAM的区别与优劣
- mysql存储引擎:InnoDB和MyISAM的区别与优劣
- mysql存储引擎:InnoDB和MyISAM的区别与优劣
- mysql存储引擎:InnoDB和MyISAM的区别与优劣
- mysql存储引擎:InnoDB和MyISAM的区别与优劣
- mysql存储引擎:InnoDB和MyISAM的区别与优劣
- mysql中timestamp,datetime,int类型的区别与优劣
- MySQL存储引擎MyISAM与InnoDB的优劣
- MySQL存储引擎MyISAM与InnoDB的优劣
- MySQL存储引擎MyISAM与InnoDB的优劣
- mysql中timestamp,datetime,int类型的区别与优劣
- MySQL存储引擎MyISAM与InnoDB的优劣
- MySQL存储引擎MyISAM与InnoDB的优劣
- mysql中timestamp,datetime类型的区别与优劣
- MySQL存储引擎MyISAM与InnoDB的优劣
- Android MVP 架构一 View与Presenter
- 队列
- phper推荐书籍
- 日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。以下为4个嫌疑犯的供词。
- 帅气的HYC的珍珠
- mysql 与mongodb的特点与优劣
- 关于M6311模组基于位置服务能力平台(LBS)的API进一步测试
- 11. Container With Most Water
- 我来评三国
- Activity四种启动模式的特点
- Struts2使用原理笔记(Spring整合)
- js 登陆ajax请求
- 静态变量和非静态变量
- 日期选择(年月日,年月)