mongodb 关于 整数类型 和 字符串类型 索引的比较

想看看到底是 整数类型的索引快呢,还是字符串类型的索引快,到底快多少呢?内存分别占多少呢?今天就来测试一下

配置

华硕飞行堡垒6
500G 的 SSD

准备数据

a 是 for 循环的变量

{
	id:a,
	name:'abcdefg'+a
}

在这里插入图片描述
2千万的数据
id 和 name 是for循环出来的

首先我们看一下查询全部数据所需要的时间

db.test1.find().explain('executionStats')
在这里插入图片描述
然后我等了10分钟… , 果断 ctrl + c 强制退出,不知道要等多久

查询id所需时间

db.test1.find({id:10000000}).explain('executionStats')
在这里插入图片描述
8 秒

查询name的时间

在这里插入图片描述
和 id 差不多,8秒多100毫秒

添加 id 索引后查询id

db.test1.createIndex({id:1})
在这里插入图片描述
db.test1.find({id:19000000}).explain('executionStats')
在这里插入图片描述
在这里插入图片描述
9毫秒

添加 name 索引后查询 name

db.test1.createIndex({name:1})
在这里插入图片描述
db.test1.find({name:'abcdefg19000000'}).explain('executionStats')
在这里插入图片描述
在这里插入图片描述
0毫秒

查看内存

2个索引 + 2千万数据
在这里插入图片描述
将近1G的内存 …

删除字符串索引后的内存

在这里插入图片描述
在这里插入图片描述
0.177 G字符串索引内存

删除整数索引后的内存

在这里插入图片描述
在这里插入图片描述
0.205 G整数索引内存

总结

字符串索引 √
  • 速度:比整数型索引快
  • 内存:比整数型索引小
最后

我的实验可能存在各种不定因素,也可能是因为我创建索引方式不正确,或者类型不正确,所以觉得有任何地方有错的小伙伴门,请在评论指正,谢谢~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值