0
点赞
收藏
分享

微信扫一扫

左手MongoDB(MongoDB的优化和安全建议)

高子歌 2021-09-19 阅读 59

一、提高MongoDB读写性能

1、“批量插入”与“逐条插入”数据,比较性能差异

2、“插入”与“更新”数据,比较性能差异

3、使用“索引”提高查询速度

原理比较

import pymongo
handler = pymongo.MongoClient().chapter_8.one _by_one
handler.create_index('salary',background = True)
  • 如果为False,那在创建索引时,这个集合就不能被查询也不能被写入,但是速度快。
  • 如果设置为True,那么创建索引的速度会慢一些,但是不影响其他程序读写这个集合。

4、引入Redis,以降低MongoDB的读取频率

5、增添适当冗余信息,以提高查询速度

二、提高MongoDB的安全性

1、配置权限管理机制

  • 特权是指一些资源和能够在资源上进行的操作。
  • 一个角色可以有多种特权。
  • 一个用户可以被赋予不同的角色。
    (1)、创建管理员用户
    管理员用户的作用是创建其他用户。管理员用户本身不能对数据库进行控制。
use admin

db.createUser(
{ user:'admin',
pwd:'123456',
roles:[{role:'userAdminAnyDatabase',db:'admin'}]
})

security:
  authorization: enabled
show dbs

mongo -port 27017 -u "admin"  -p "123456" --authenticationDatabase "admin"

db.createUser(
    {
    user : "test_name",
    pwd : "123456",
    roles: [ { role : "readWrite", db : "chapter_8" } ,
    { role : "read", db : "chapter_7" } ]
    }
    )


(3)使用Robo 3T连接有账号的MongoDB


编辑连接



(4)创建能操作数据库的管理员用户

db.createUser(
    {
    user : "root",
    pwd : "123456",
    roles: ['root']
    }
    )


(5)用Python连接有密码的MongoDB

mongobd://用户名:密码@数据库地址:端口/数据库名

如果使用root用户,不用指定数据库

2、开放外网访问

举报

相关推荐

0 条评论