MongoDB基础

一、Nosql以及MongoDB

  NoSQL就是为了解决在web2.0时代,出现的三高要求。

    对数据库高并发读写的需求
    对海量数据的高效率存储和访问的需求
    对数据库的高可拓展性和高可用性的需求
         数据库的一致性
         数据库的实时读写
         复杂的SQL查询,特别是多表关联查询
  NoSQL的优点
    拓展简单方便,尤其是水平横向拓展(纵向拓展是指使用更强的机器,横向拓展是指把数据分散到多个机器)
    读写快速高雄啊,多数都会映射到内存操作(如Redis等)
    成本低廉,用普通机器,分布式集群即可
  NoSQL的缺点
    不支持对SQL的支持
    现有产品还不够成熟稳定,功能还有待加强
  
  MondoDB的特点
    1.高性能,易于使用,易于拓展,功能丰富
    2.面向集合存储,模式自由
    3.支持动态查询,支持javascript表达式查询
    4.支持索引
    5.支持副本集复制和自动故障恢复
    6.支持二进制和大型对象数据
    7.文件存储格式为BSON

二、MongoDB的文档存储机制

将文档插入到MongoDB的时候,文档是按照插入的顺序,依次在磁盘上相邻保存在磁盘上。
 因此,一个文档变大了,原来的位置如果放不下这个文档了,就需要把这个文档移动到集合的另外一个位置,通常是最后能放下这个文档的地方。 这样频繁的移动文档的效率是非常低的。 
MongoDB移动文档的时候,会自动修改集合的填充因子(padding factor),填充因子是为新文档预留的增长空间,不能手动设定填充因子。
    1.填充因子开始可能是1,也就是为每个文档分配精确地空间,不预留增长空间
    2.当有文档超长而被迫移动文档的时候,填充因子会增大
    3.当集合中不再有文档移动的时候,填充因子会慢慢减小
    MongoDB进行文档移动是非常慢的。所以在设计的时候尽量避免文档的移动操作。
        如某个字段的增长是预期的,如成绩可能最多8门课。我们可以预留一些空间,插入一些占位符,多插入一些无效的字段。
mongodb文档数据库,存储的是文档(Bson->json的二进制化)
特点:mongodb的内部引擎使用JS解析器,把文档存储成bson结构,在查询时,转换成JS对象,并可以通过我们熟悉的JS语法来操作

 

三、MongoDB的安装与启动

1、安装

官网:https://www.mongodb.com/download-center#community

官网上下载linux版本即可。已经编译了的,本身就是编译后的二进制可执行文件

解压xxx.tar.gz

进入xxx/bin

      -    bsondump            :导出bson结构
        -    install_compass   
        -    mongo                :客户端(相当于mysql.exe)
        -    mongod               :服务端(相当于mysqld.exe)
        -    mongodump        :整体数据库导出(二进制,相当于mysqldump)
        -    mongoexport       :导出易识别的json文件或csv文档
        -    mongofiles
        -    mongoimport
        -    mongoperf
        -    mongoreplay
        -    mongorestore      :数据库整体导入
        -    mongos                :路由器(分片时用) 
        -    mongostat            :运维时需要观察mongodb的运行状态
        -    mongotop

2、MongoDB的启动,关闭

1)启动

a.以参数的方式启动

    ./bin/mongod --dbpath=xxx --logpath xxx --fork --port 27017

   参数解析

      --dbpath  数据存放目录

      --logpath  日志存放目录

      --fork   以后台进程启动

      --port        运行段看看

      --rest        web用户界面,(比运行端口大1000)

      --bind_ip   0.0.0.0  可以使得远程连接

b.以配置文件的方式启动

      也可以以配置文件的方式启动 ./mongod -f xxx/mongo.conf

      dbpath = xxxx
      logpath = xxxx
      logappend = true
      port = 27017
查看mongodb的进程是否启动
  ps -aux|grep mongod

2)关闭 

a.使用Ctrl+c关闭

  如果以前台方式启动MongoDB服务,可以使用Ctrl + C关闭服务,这种关闭方式会等待当前进行中的操作完成,所以是干净的关闭方式

b.使用数据库命令关闭

  登陆数据mongo  --port 27017

  >use admin;

  >db.shutdownServer();

c.使用mongodb命令关闭 

  mongod  --shutdown  --dbpath /database/mongodb/data/

 d.使用kill命令

  ps -ef | grep mongo

  kill -2 pid 或者 kill -15 pid

  可以使用操作系统的kill命令,给mongod进程发送SIGINT 或 SIGTERM 信号,  即 "kill -2 PID," 或者 “kill -15 PID“。

  注意:建议不要使用 ”kill -9 pid“,因为如果 MongoDB 运行在没开启日志(--journal)的情况下,可能会造成数据损失

 

 

 

 

  

posted @ 2018-08-25 20:10  刘丽刚  阅读(77)  评论(0)    收藏  举报