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

2023-11-11

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

配置

华硕飞行堡垒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整数索引内存

总结

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐

  • Redis分布式锁,基于StringRedisTemplate和基于Lettuce实现setNx

    使用redis分布式锁 来确保多个服务对共享数据操作的唯一性一般来说有StringRedisTemplate和RedisTemplate两种redis操作模板 根据key value的类型决定使用哪种模板 如果k v均是String类型 则
  • ESP32串口不断输出rst:0x10 (RTCWDT_RTC_RESET),boot:0x13(SPI_FAST_FLASH_BOOT)且按BOOT键进不了下载模式

    错误现象 rst 0x10 RTCWDT RTC RESET boot 0x13 SPI FAST FLASH BOOT flash read err 1000 ets main c 371 ets Jun 8 2016 00 22 57
  • @优秀的你!CSDN高校俱乐部主席招募!

    你想用有限的大学时光 展现才华 施展抱负吗 你想参与打造自己学校最具影响力 最具凝聚力 最具创新力的IT学生组织吗 机会就在这里 CSDN高校俱乐部主席开始招募啦 一 高校俱乐部主席权益 成为自己所在高校俱乐部的主席 可获得以下权益 可获得
  • 关于 时钟抖动 Jitter 和 偏移 Skew

    系统时序设计中对时钟信号的要求是非常严格的 因为我们所有的时序计算都是以恒定的时钟信号为基准 但实际中时钟信号往往不可能总是那么完美 会出现抖动 Jitter 和偏移 Skew 问题 所谓抖动 jitter 就是指两个时钟周期之间存在的差值
  • crm系统服务器端,安装 Microsoft Dynamics CRM 前端服务器和后端服务器角色

    安装 Microsoft Dynamics CRM 前端服务器和后端服务器角色 03 06 2017 本文内容 发布日期 2016年11月 适用于 Dynamics CRM 2015 以下步骤用于在两个尚未安装 Microsoft Dyna
  • js获取设备信息的方法汇总

    注 本文转自傲雪星枫 1 获取访问者IP及所在地
  • 日常新计算器日常思考

    trim 方法实际上trim掉了字符串两端Unicode编码小于等于32 u0020 的所有字符 trim 方法实际上的行为并不是 去掉两端的空白字符 而是 截取中间的非空白字符 indexOf 返回特定子字符串第一次在源字符串中的位置 如
  • Mac PyCharm Failed to create virtual environment错误解决办法

    2种可能原因 一种是目录没权限 像windows下容易出现此类问题 可以通过右键管理员运行pycharm来解决 另一种可能就是Mac下 Users xxxx PycharmProjects pythonProject venv 这个目录已经
  • C/S 和 P2P

    紫色代表一级目录 粉红代表二级目录 蓝色代表三级目录 红色代表关键字 橙色代表说明 C S 客户 client 和服务器 server 都是指通信中所涉及的两个应用进程 客户服务器方式所描述的是进程之间服务和被服务的关系 客户是服务的请求方
  • 数据挖掘:属性

    数据对数据挖掘是至关重要的 只有充分认识数据才能选择合适的挖掘方法 进而得到不错的挖掘效果 1 属性与度量 详细内容参考 introduction to data mining 属性是对象的特性 它因对象而异 或随时间而变化 测量标度是将数
  • 计算机毕业设计-基于协同过滤算法的农特产商城微信小程序-springboot商城小程序

    注意 该项目只展示部分功能 如需了解 评论区咨询即可 本文目录 1 开发环境 2 系统的设计背景 3 各角色功能模块 3 1 用户 3 2 管理员 4 系统页面展示 4 1 小程序端功能模块展示 4 2 后台管理端功能模块展示 5 更多推荐
  • 什么是MES生产制造执行系统?实施MES生产管理系统有哪些目标?

    一 什么是MES生产制造执行管理系统 MES系统通过控制包括物料 设备 人员 流程指令和设施在内的所有工厂资源 优化从定单到产品完成的整个生产活动 以最少的投入生产出最优的产品 实现连续均衡生产 MES系统通过与ERP DCS系统的全面集成
  • React 实现一个水球图

    代码来源于https github com ant design ant design pro blob all blocks src pages dashboard monitor index tsx 个人 代码实现 实际代码看上面cod
  • 项目中QNX的USB驱动开发的反思

    锋影 e mail 174176320 qq com 接触驱动层的东西 心里还有点小激动 总感觉自己比没搞之前提高了那么一点点 也不知是真的假的 拉出来遛遛 1 整体思路 驱动层 先从驱动层说起 他将USB设备通过Resource Mana
  • 南邮CTF平台writeup:Web(一)

    签到题 查看网页源代码即可 md5 collision md51 md5 QNKCDZO a GET a md52 md5 a if isset a if a QNKCDZO md51 md52 echo nctf else echo fa
  • 做你自己

    2017 03 06 2017 03 10将彼得 巴菲特的书籍 做你自己 个股神巴菲特送给儿子的人生礼物 读完了 感受颇深 沃伦 巴菲特的名言 出生时嘴里含着的金汤匙 最后可能会变成扎在背上的金匕首 考虑不周的赠与会浇灭一个人的雄心并枯竭他
  • Android update api

    修改公共api后 需要 make update api 比较framework base api 下的current xml跟原始x xml 比如2 2为8 xml 2 3 3为10 xml 同时修改x xml 然后make
  • Windows 0x80190001错误解决

    Windows 0x80190001错误 笔者使用的系统版本为win10 2004 若同学们正在使用的系统为Windows 11 请移步这篇文章 Windows11 0x80190001错误解决 windows出现这样的错误 初步判断为wi
  • numpy的两个属性的详解 →→→→arange()和reshape()

    arange 简单的说就是创建了一个数组 print 默认是一维为数组 np arange 5 参数表示从0到5截至 不包括5 print 自定义起点一维数组 np arange 1 5 参数表示从1到5截至 不包括5 print 自定义起
  • mongodb 关于 整数类型 和 字符串类型 索引的比较

    想看看到底是 整数类型的索引快呢 还是字符串类型的索引快 到底快多少呢 内存分别占多少呢 今天就来测试一下 配置 华硕飞行堡垒6 500G 的 SSD 准备数据 a 是 for 循环的变量 id a name abcdefg a 2千万的数