array(2) { ["docs"]=> array(10) { [0]=> array(10) { ["id"]=> string(3) "428" ["text"]=> string(77) "Visual Studio 2017 单独启动MSDN帮助(Microsoft Help Viewer)的方法" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(8) "DonetRen" ["tagsname"]=> string(55) "Visual Studio 2017|MSDN帮助|C#程序|.NET|Help Viewer" ["tagsid"]=> string(23) "[401,402,403,"300",404]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400964" ["_id"]=> string(3) "428" } [1]=> array(10) { ["id"]=> string(3) "427" ["text"]=> string(42) "npm -v;报错 cannot find module "wrapp"" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "zzty" ["tagsname"]=> string(50) "node.js|npm|cannot find module "wrapp“|node" ["tagsid"]=> string(19) "[398,"239",399,400]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400760" ["_id"]=> string(3) "427" } [2]=> array(10) { ["id"]=> string(3) "426" ["text"]=> string(54) "说说css中pt、px、em、rem都扮演了什么角色" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(12) "zhengqiaoyin" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400640" ["_id"]=> string(3) "426" } [3]=> array(10) { ["id"]=> string(3) "425" ["text"]=> string(83) "深入学习JS执行--创建执行上下文(变量对象,作用域链,this)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "Ry-yuan" ["tagsname"]=> string(33) "Javascript|Javascript执行过程" ["tagsid"]=> string(13) "["169","191"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511399901" ["_id"]=> string(3) "425" } [4]=> array(10) { ["id"]=> string(3) "424" ["text"]=> string(30) "C# 排序技术研究与对比" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "vveiliang" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(8) ".Net Dev" ["catesid"]=> string(5) "[199]" ["createtime"]=> string(10) "1511399150" ["_id"]=> string(3) "424" } [5]=> array(10) { ["id"]=> string(3) "423" ["text"]=> string(72) "【算法】小白的算法笔记:快速排序算法的编码和优化" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "penghuwan" ["tagsname"]=> string(6) "算法" ["tagsid"]=> string(7) "["344"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511398109" ["_id"]=> string(3) "423" } [6]=> array(10) { ["id"]=> string(3) "422" ["text"]=> string(64) "JavaScript数据可视化编程学习(二)Flotr2,雷达图" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "chengxs" ["tagsname"]=> string(28) "数据可视化|前端学习" ["tagsid"]=> string(9) "[396,397]" ["catesname"]=> string(18) "前端基本知识" ["catesid"]=> string(5) "[198]" ["createtime"]=> string(10) "1511397800" ["_id"]=> string(3) "422" } [7]=> array(10) { ["id"]=> string(3) "421" ["text"]=> string(36) "C#表达式目录树(Expression)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "wwym" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(4) ".NET" ["catesid"]=> string(7) "["119"]" ["createtime"]=> string(10) "1511397474" ["_id"]=> string(3) "421" } [8]=> array(10) { ["id"]=> string(3) "420" ["text"]=> string(47) "数据结构 队列_队列实例:事件处理" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "idreamo" ["tagsname"]=> string(40) "C语言|数据结构|队列|事件处理" ["tagsid"]=> string(23) "["246","247","248",395]" ["catesname"]=> string(12) "数据结构" ["catesid"]=> string(7) "["133"]" ["createtime"]=> string(10) "1511397279" ["_id"]=> string(3) "420" } [9]=> array(10) { ["id"]=> string(3) "419" ["text"]=> string(47) "久等了,博客园官方Android客户端发布" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(3) "cmt" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511396549" ["_id"]=> string(3) "419" } } ["count"]=> int(200) } 222 MongoDB-简介 - 爱码网

    MongoDB是一个开源的,高性能无模式的文档型数据库,非关系型数据库。可用于替代传统的关系型数据库或键/值存储方式。

    主要特点

    (1)高性能:非关系型,无模式,使用内存映射

    (2)高可用:自动故障转移和副本集

    (3)水平扩展:分片能把数据分发到一个集群的环境中

    (4)支持多个存储引擎:WiredTiger 和MMAPv1 Storage Engine,可插拔,支持第三方引擎

    与MySQL相比,也是从关系型和非关系型数据库间对比,主要有以下不同:

    (1)非关系型,文档之间没有联系,数据自包含,MySql有外键,连接查询等

    (2)不支持事务,但不代表不能用于管理重要数据(MySQL的MYISAM存储引擎也不支持事务...)

    (3)无模式,集合中的文档结构不固定,可以存储各式各样的文档,文档可以嵌套,存储数组等

    (4)没有表,行的概念,与之对应的是集合和文档

2.文档

    MongoDB的集合不强制指定文档的结构,文档结构具有高度的灵活性,不像关系数据库在插入数据时,必须先指定表的结构。

    MongoDB采用BSON类型文档存储,BSON是JSON的二进制表示,它包含更多的数据类型。如下一个简单的文档:

    var mydoc = {

           _id: ObjectId("5099803df3f4948bd2f98391"),    ObjectId类型的属性

           name: { first: "Alan", last: "Turing" },            embedded嵌套文档

           birth: new Date('Jun 23, 1912'),                date日期类型

           death: new Date('Jun 07, 1954'),

           contribs: [ "Turing machine", "Turing test", "Turingery" ],  array数组类型

           views : NumberLong(1250000)                 NumberLong类型

    }

    文档的局限性:每个文档最大不能超过16M,对于电影,图片等大文件MongoDB使用 GridFS 来进行分块存储。

    文档的属性字段是字符类型,并且区分大小写,大多数MongoDB接口不支持属性重名,不能包含美元符号($),点(.),null 这些字符,每个文档都有”_id”为保留作            为一个主键字段。

    文档中可以使用的数据类型如下表:

MongoDB-简介

 

3.存储方式

    MongoDB支持多种存储引擎,这里主要介绍两种,分别是MMAPv1和WiredTiger。主要从这几个方面来描述,并发写入,操作日志,内存使用

3.1 WiredTiger Storage Engine

    主要特点有:

    (1)WiredTiger存储引擎是MongoDB3.2的默认存储引擎。

    (2)支持文档级别的并发。

    (3)快照和检查点,WT先将所有数据写到一个快照中然后刷到磁盘数据文件,并把当前刷新的数据作为数据文件中的一个检查点,可用来确保数据的一致性和恢复             数据(也能作为恢复点),WT中每60秒或者journal文件大于2G会设置一个检查点,将数据刷到磁盘。

    (4)Journal 操作日志,每50毫秒会记录每个检查点之间的所有修改操作,日志文件大小限制为100M,每创建新的文件会同步之前的日志文件,在dbpath的目录             下会有一个Journal的文件夹,日志文件命名为WiredTigerLog.<sequence>。

    (5)内存使用,WT默认使用内存的60%-1G或者1G

3.2 MMAPv1 Storage Engine

    MMAPv1基于内存映射,擅长处理大量的读写和就地更新操作。是3.2之前版本的默认存储引擎。

    主要特点有:

    (1)支持集合级别的并发

    (2)Journal操作日志,每100毫秒就会写入journal files 一次,每60秒持久化一次数据文件data files到磁盘,所以当一个mongod实例还没刷数据到磁盘,可                以使用Journal进行数据恢复。在dbpath的目录下会有一个Journal的文件夹,日志文件命名为j._<sequence>,文件超过1G会创建新的。

    (3)Avoid Preallocation Lag for MMAPv1  预先配置落后

    (4)内存使用,MMAPv1会尽可能使用所有可用的内存作为缓存

4.权限

    MongoDB默认不开启访问控制,单机可以使用—auth参数启用,集群使用keyfile方法启用。

    MongoDB中的用户权限:

 MongoDB-简介

5.总结

    MongoDB是一个分布式文件存储的数据库,由C++语言编写,旨在提供可扩展的高性能数据存储方案。

    采用无模式结构存储,集合可以存储结构不同的文档,但一般还是存储相同的结构;支持索引,可以在任意属性上建立索引,包括内嵌文档;丰富的查询语言以及聚合工具,支持复制和数据恢复,内置自动数据分片等功能。

    主要适用于以下场景:

    (1) 适合实时插入,更新和查询,高度可伸缩性

    (2) 缓存,性能高可作为缓存层

    (3) 适合数十或数百台服务器组成的数据库

 

相关文章: