MongoDB的ubuntu、centos安装、索引;fastapi序列化

本文详细介绍了在CentOS和Ubuntu系统上安装MongoDB的步骤,包括设置存储库、安装、启动服务、配置防火墙及连接实例。此外,深入探讨了索引的优缺点、创建规则及操作方法,如查看、创建、删除索引和强制使用索引,帮助提升数据库查询性能。

一、mongodb的安装

要在 CentOS 上安装最新版本的 MongoDB,可以按照以下步骤进行

  • 设置 MongoDB 存储库
    首先,创建一个 .repo 文件来设置 MongoDB 的官方存储库。以 MongoDB 6.0 为例(确保在 MongoDB 官方网站上检查最新版本的存储库 URL)
    sudo vi /etc/yum.repos.d/mongodb-org-7.0.repo
    
    在文件中添加以下内容(以 MongoDB 7.0 为例):
    [mongodb-org-7.0]
    name=MongoDB Repository
    baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/7.0/x86_64/
    gpgcheck=1
    enabled=1
    gpgkey=https://www.mongodb.org/static/pgp/server-7.0.asc
    
  • 安装 MongoDB:
    使用 yum 命令安装 MongoDB
    sudo yum install -y mongodb-org
    
  • 启动 MongoDB 服务:
    安装完成后,启动 MongoDB 服务并使其在系统启动时自动启动
    sudo systemctl start mongod
    sudo systemctl enable mongod
    
  • 检查 MongoDB 服务状态:
    确认 MongoDB 服务已经成功启动
    sudo systemctl status mongod
    
  • 配置防火墙(可选):
    如果您使用防火墙,可能需要开放 MongoDB 的默认端口 27017
    sudo firewall-cmd --add-port=27017/tcp --permanent
    sudo firewall-cmd --reload
    
  • 连接 MongoDB:
    使用 MongoDB shell 连接到 MongoDB 实例
    /usr/bin/mongosh
    
    mongosh "mongodb://ip:port"
    mongosh ip:port/数据库  -u 用户名 -p 密码
    mongosh -u 用户名 -p 密码 --port 端口号 --host ip 数据库名
    

为了在 Ubuntu 上安装最新版本的 MongoDB,可以按照以下步骤进行:

  • 导入 MongoDB 公共 GPG 密钥:
    wget -qO - https://www.mongodb.org/static/pgp/server-7.0.asc | sudo apt-key add -
    新版:wget -qO - https://www.mongodb.org/static/pgp/server-7.0.asc | sudo tee /etc/apt/trusted.gpg.d/mongodb-org-7.0.asc
    
  • 创建一个 MongoDB 列表文件:
    根据您的 Ubuntu 版本创建相应的列表文件。以 MongoDB 7.0 为例(确保在 MongoDB 官方网站上检查最新版本的存储库 URL
    echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu $(lsb_release -cs)/mongodb-org/7.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list
    
  • 更新本地包数据库:
    sudo apt-get update
    
  • 安装 MongoDB:
    sudo apt-get install -y mongodb-org
    
  • 启动 MongoDB 服务
    安装完成后,启动 MongoDB 服务并使其在系统启动时自动启动。
    sudo systemctl start mongod
    sudo systemctl enable mongod
    
  • 检查 MongoDB 服务状态:确认 MongoDB 服务已经成功启动
    sudo systemctl status mongod
    
  • 连接 MongoDB:
    使用 MongoDB shell 连接到 MongoDB 实例。
    /usr/bin/mongosh
    
    mongosh "mongodb://ip:port"
    mongosh ip:port/数据库  -u 用户名 -p 密码
    mongosh -u 用户名 -p 密码 --port 端口号 --host ip 数据库名
    

使用索引可以提升查询速度,提升数据库查询的性能

    索引的优点点与缺点:
    优点:提高数据的查询速度
    缺点:牺牲了数据库的插入和更新速度

如何查看语句执行情况
在执行语句之后追加explain(),并且提供参数executionStats

db.colname.find(query).explain(‘executionStats’)

索引的相关操作

查看已存在的索引

		db.colname.getIndexes()

索引创建的规则:

    ①创建索引使用的文档中键为设置索引的字段,值为1表示索引按照升序存储,值为-1则表示索引按照降序存储
    ②当有大量数据时,创建索引会非常缓慢,因此可以后台创建索引,在创建索引的时候添加{background:true}

单一索引

			db.colname.ensureIndex({key:1},{background:true})

联合索引

	    	db.colname.ensureIndex({key1:1,key2:1})
				创建联合索引之后,可以使用key1或者key1,key2的查询进行查找

唯一索引

db.colname.ensureIndex({key:1},{“unique”:true})

 注意事项:
      ①当创建一个key为唯一索引时,新插入的数据如果key的值与已存在的数据相同,则会报错。
      ②当对已存在数据的集合创建唯一索引时,可能会因为重复,导致创建不成功,使用dropDups可以删除重复文档
			db.colname.ensureIndex({key:1},{“unique”:true,”dropDups”:true})

查询时强制使用索引

  		db.colname.find({key1:value}).hint(索引文档)

删除索引

 		db.colname.dropIndex({key:1})

索引与全表扫描的对比选择
在这里插入图片描述

alias _id Causing Casting issues with fastapi

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风华浪浪

讨个老婆本呗

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值