2018年9月14日(周五)

本文深入探讨MongoDB中各种类型的索引,包括默认的_id索引、单键、复合、多键、地理、文本和hash索引。讲解了索引的创建方法、性能分析技巧以及索引选项如background、unique等的使用。同时,文章还提到了Linux下的dpkg命令和Git的远程分支管理。
摘要由CSDN通过智能技术生成

Mongodb

  • 默认索引 _id
createIndex({key:value},options) 创建索引方法
  • 单键索引:单键索引对于排序和没有影响,因为mongodb可以通过两个方向来遍历文档
  • 复合索引
    复合索引排序时,例如{userId:1,score:-1} 那么排序的方式是以userId先排序,在每个userId内,然后再根据score排序
  • 多键索引
    当创建索引时,字段是一个数组,那么mongodb会自动创建一个多键索引,无需手动,排序和复合索引一样 例如:
name:[{a:'xx'},{a:'gg'}] 可以使用嵌入式排序,即对象内部字段排序
排序:{name.a:1}
  • 地理索引
  • 文本索引
  • hash索引
  • TL 索引

分析索引性能:

cursor=db.collection.find()
cursor.explain("executionStats") 返回查询计划及信息
cursor.hint(index) 测试索引

索引options属性:

background:可选 创建索引时,并不阻塞其他数据库操作 默认为false
unique :可选 索引是否为唯一值 默认为false
name : 可选 索引名称 
partialFilterExpression: 可选,是否仅使用文档筛选器 例如$exist $gt等
sparse:可选 使用时,这些索引只会返回文档的制定字段,即如果文档无索引,就会跳过。会减少占用空间,但是在某些情况下会出现不一样的表现,例如排序

单键索引

createIndex({name:1},options);
也可以使用嵌入式创建索引,取对象中的一个属性创建索引
createIndex({xx.yy:1},options)

复合索引

db.collection.createIndex( { <field1>: <type>, <field2>: <type2>, ... } )
复合索引和单键索引差不多,只是在排序上有很大区别,在使用sort()时,是按照书写顺序来先后排序的
sort({a:1,b:1}) 和sort({b:1,a:1}) 是完全不一样的排序方式

多键索引

为了索引一个储存数组的键,MongoDB对数组中的每个元素都添加索引项
创建多键索引时候,不能有两个数组,否则会报 cannot index parallel arrays [b] [a]
分片键

你不能指定多键索引为分片键

哈希键

hash键不能用于多键索引
多键索引界限

文本索引

一个集合最多只能创建 一个 文本 索引

db.reviews.createIndex( { comments: "text" } )

Git

在删除远程分支后,在本地使用命令 git branch -a 查看时,任然存在分支

git remote show origin //可以使用该命令查看远程分支情况

解决办法:

git remote prune origin //刷新本地仓库与远程仓库的保持这些改动的同步

Linux 命令

dpkg

是一个Debian的一个命令行工具,它可以用来安装、删除、构建和管理Debian的软件包

dpkg -i file.deb #安装包
dkpg --unpack filde.deb #解开软件包
dpkg --configure file.deb #配置包
sudo rm /var/lib/dpkg/lock #dkpg一次只能运行一个,会加锁,如果想清除锁
dpkg -r xx / dpkg remove xx #删除包
dkpg -P xx.deb #清除安装包加配置 dpkg remove xx.deb只是清楚安装,不清楚配置

dkpg -l #查看所有的安装包
dpkg -l name #显示当前包的详细信息    
dkpg -L name:#显示于软件包关联的文件
dkpg -c file.deb #显示软件包内文件列表
dpkg -S keyword #关键词搜索

dpkg和apt-get 的区别

apt-get: 用于在网络下下载资源,且会解决包的依赖问题
dpkg:用于安装本地的*.deb包,但是不会解决依赖问题,且dpkg绕过apt包管理数据库对软件包进行操作,所以你用dpkg安装过的软件包用apt可以再安装一遍,系统不知道之前安装过了,将会覆盖之前dpkg的安装

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值