电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > DOCX文档下载
分享到微信 分享到微博 分享到QQ空间

MongoDB数据库索引管理方法

  • 资源ID:55712737       资源大小:44.40KB        全文页数:7页
  • 资源格式: DOCX        下载积分:0金贝
快捷下载 游客一键下载
账号登录下载
微信登录下载
三方登录下载: 微信开放平台登录   支付宝登录   QQ登录  
二维码
微信扫一扫登录
下载资源需要0金贝
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

MongoDB数据库索引管理方法

MongoDBMongoDB 数据库索引管理方法数据库索引管理方法 MongoDBMongoDB 索引索引 索引是特殊的数据结构,索引存储在一个易于遍历读取的数据集合中,索引是对数据库表 中一列或多列的值进行排序的一种结构; 使用索引的优点:使用索引的优点:索引通常能够极大的提高查询的效率,这是由于索引储存在内存中,同 时索引本身的遍历效率必普通集合更高; 使用索引带来的代价:使用索引带来的代价:额外的操作开销,在进行插入、更新、删除操作时,也需要对索引 进行操作,如果是查询少、更改多的集合,使用索引是很不划算的;额外的内存开销,由 于索引是储存在内存中的,应该确保索引大小不超过内存限制(如果索引大小操作内存限 制,mongodb 会删除一些索引,导致性能下降); mongdbmongdb 的索引存在以下限制:的索引存在以下限制:一个集合的索引不能超过 64 个; 索引名长度不能超过 128 个字符; 一个复合索引最多只能由 31 个; 索引不能用以下查询:索引不能用以下查询:正则表达式查询,$regex;非操作符查询,如 $nin,$not 等;算术 运算符,如 $mod 等;$where 操作符子句; 创建索引创建索引 为集合创建索引使用可以 ensureIndex(ensureIndex( :,:, key:索引使用的键,1 表示正序, -1 表示倒序; option:可接受参数,参数列表如下: background: - 创建索引是否会阻塞其他数据库操作,默认值 false;name: - ?索引的名 称,如果未指定,mongodb 会通过索引的字段名和排序顺序生成一个索引名称;unique: - 建立索引是否唯一,默认为 false;dropDups: - 在建立唯一索引时,是否会删除重复记 录,默认为 false;sparse: - 对文档中不存在的字段是否不启用索引,如果设置为 true,在索引字段中不会出现查询不包含对应字段的索引,默认为 false;expireAfterSeconds: - 设定查询集合在内存中的生存时间(TTL 设定);v: - 索引的版本号,默认为 mongo 创建索引时运行的版本;weights: - 索引的权重值,表示 该索引对于其他索引字段的得分权重,范围在 1,99999;default_language: - 指定文 本索引停用词、词干、词器的规则的咧白哦,默认为 en 英语;language_override: - 指 定文本索引包含在文档中的字段名、语言覆盖默认的 language,默认为 language;? ? 1# 为 col 集合创建索引,索引字段为 title,正序 ? 1db.col.ensureIndex( title:1 ) ? 1# 为 col 集合创建复合索引,索引字段为 title,score,正序,正序 ? 1db.col.ensureIndex( title:1, score:1 ) ? 1# 创建索后台进行 ? 1db.col.ensureIndex( title:1, backgroud:true ) 索引覆盖查询索引覆盖查询 在创建了索引之后,mongodb 在进行索引时,如果查询的字段已经被建立了索引,那么 mongodb 并不会真正去数据库中查询这些字段,而是直接在已经建立的索引中提取数据 (这个速度远远高于直接在数据库中查询),即此时 mongodb 会使用索引覆盖查询;需要 注意的是,mongodb 默认的查询会返回 _id 字段,如果没有对 _id 字段进行索引,是不 会使用索引覆盖查询的;? 天地棋牌 http:/www.dadiqipaigw.cn ? 1db.col.ensureIndex( title:1, score:1 ) ?# 为 col 集合中的 title、score 字段建立索引; ? 1db.col.find( title:“hello world“, score:1, _id:0 ) # 该查询会被以上 索引覆盖,mongodb 直接在索引中查询; ? 1db.col.find( title:“hello world“, score:1 ) ? ? ? ?# 该索引没有被以 上索引覆盖,mongodb 在数据库中查询,原因是含有没有被索引覆盖的 _id 字段; ? 1db.col.find( title:“hello world“ ) ? ? ? ? ? ? ? ? ? # 该索引没有被以 上索引覆盖,原因是含有没有被索引覆盖的 _id 字段; 如果是以下类型查询,无法使用索引覆盖查询: 索引字段是一个数组; 索引字段是一个子文档; 索引数组字段索引数组字段? ? 假设要检索下列 user 文档的 tages 数组:? ? 1 ? ? 1? “name“:“assad“, ? 1? “tags“: ? 1? ? ?“coder“, ? 1? ? ?“fat nerd“, ? 1? ? ?“philosophy“ ? 1? ? 1 可以使用以下命名来创建数组索引,当为整个数组创建索引之后,会为数组里的所有值单 独创建索引: ? ? 1 db.users.ensureIndex( tages:1 ) 验证检索结果:? ? 1 db.users.find( tages:“coder“ ).explain() 索引子文档字段索引子文档字段 假设要检索下列 user 文档的 address 子文档,通过 city、state、pincode 字段来创建 user 的检索,由于这些字段为 user 的 子文档 address 的字段,需要对 address 文档 创建检索: ? ? 1 ? ? 1? “name“:“assad“, ? 1? “address“: ? 1? ? ?“city“: “Guanzhou“, ? 1? ? ?“state“: “Guangdong“, ? 1? ? ?“pincode“: “510000“ ? 1? ? 1 可以使用以下创建 address 子文档全部字段的索引:? ? 1 db.users.find( address.city:1, address.state:1, address.pincode:1 ) 验证检索结果: ? ? 1 db.users.find( address.city:“Guangdong“, address.state:“Gunagzhou“ ).explain() 查看索引查看索引 & & 删除索引删除索引 ? ? 1# 查看数据库中所有的索引 ? 1 db.system.indexs.find() ? 1. ? 1? ? 1# 查看集合中的索引 ? 1 db.col.getIndexes() ? 1 ? 1? ? 1? ? ? “v“ : 2, ? 1? ? ? “key“ : ? 1? ? ? ? ? “_id“ : 1 ? 1? ? ? , ? 1? ? ? “name“ : “_id_“, ? 1? ? ? “ns“ : “testdb.articles“ ? 1? , ? 1? ? 1? ? ? “v“ : 2, ? 1? ? ? “key“ : ? 1? ? ? ? ? “title“ : 1 ? 1? ? ? , ? 1? ? ? “name“ : “title_1“, ? 1? ? ? “ns“ : “testdb.articles“ ? 1? ? 1 ? 1? ? 1# 查看索引大小,单位 bytes ? 1 db.articles.totalIndexSize() ? 153248 ? 1? ? 1# 删除所有索引 ? 1 db.articles.dropIndexes() ? 1? ? 1# 删除指定 name 的索引 ? 1 db.srticles.dropIndex(“title_1“) 索引查询分析索引查询分析 explain()explain() 方法方法?可以使用 explain() 方法用于获取查询的信息、索引使用情况、查询统 计等信息,方便对索引进行优化;? 638 棋牌 http:/www.rodlg.com ? 1 db.articles.ensureIndex(author:1,title:1) ? ? # 创建索引 ? 1 db.articles.find(author:“assad“,title:1,_id:0).explain() ? ?# 使 用 explain 函数进行查询分析 返回信息中于索引相关的信息:? ? 1?“inputStage“ : ? 1? ? ?“stage“ : “IXSCAN“, ? 1? ? ?“keyPattern“ : ? 1? ? ? ? ? ? ?“author“ : 1, ? 1? ? ? ? ? ? ?“title“ : 1 ? 1? ? , ? 1? ? ?“indexName“ : “author_1_title_1“, ? 1? ? ?“isMultiKey“ : false, ? 1? ? ?“multiKeyPaths“ : ? 1? ? ? ? ? ? ?“author“ : , ? 1? ? ? ? ? ? ?“title“ : ? 1? ? , ? 1? ? ?“isUnique“ : false, ? 1? ? ?“isSparse“ : false, ? 1? ? ?“isPartial“ : false, ? 1? ? ?“indexVersion“ : 2, ? 1? ? ?“direction“ : “forward“, ? 1? ? ?“indexBounds“ : ? 1? ? ? ? ? ? ?“author“ : ? 1? ? ? ? ? ? ? ? ? ? ?“assad“, “assad“ ? 1? ? ? ? ? ? , ? 1? ? ? ? ? ? ?“title“ : ? 1? ? ? ? ? ? ? ? ? ? ?“MinKey, MaxKey“ ? 1? ? ? ? ? ? ? 1? ? ? 1 hint()hint() 方法方法 hint() 方法用于强制 mongodb 使用一个指定的索引,如下,同样也可以使用 explain() 方法来分析以下索引;? ? 1db.users.find(author:'assad',title:1,_id:0).hint(author:1,title: 1)

注意事项

本文(MongoDB数据库索引管理方法)为本站会员(m****)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。

分享当前资源【MongoDB数据库索引管理方法】到朋友圈,您即可以免费下载此资源!
微信扫一扫分享到朋友圈
二维码
操作提示:任选上面一个二维码,打开微信,点击“发现”使用“扫一扫”,即可将选择的网页分享到朋友圈
您可能感兴趣的------------------------------------------------------------------------------------------------------



关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.