当前位置: 首页 > news >正文

python做网站快么网站关键字太多

python做网站快么,网站关键字太多,泰州网站设计咨询,什么网站发布任务有人做学习mongodb#xff0c;体会mongodb的每一个使用细节#xff0c;欢迎阅读威赞的文章。这是威赞发布的第93篇mongodb技术文章#xff0c;欢迎浏览本专栏威赞发布的其他文章。如果您认为我的文章对您有帮助或者解决您的问题#xff0c;欢迎在文章下面点个赞#xff0c;或者关…学习mongodb体会mongodb的每一个使用细节欢迎阅读威赞的文章。这是威赞发布的第93篇mongodb技术文章欢迎浏览本专栏威赞发布的其他文章。如果您认为我的文章对您有帮助或者解决您的问题欢迎在文章下面点个赞或者关注威赞。谢谢。 Mongodb为提高数组的查询效率针对数组构建了多键索引。而Mongodb在应用多键数组查询时也通过构建减少数组查询的数值范围来提高查询性能。本文结合Mongodb官方文档阐述Mongodb在使用多键索引时的边界优化。 概述 索引边界定义了索引值的区间段。Mongodb在查询时用这个区间段来查询索引中的数据。当用户针对索引字段指定多个查询条件时mongdb尝试合并这些查询条件的区间范围来计算出更小的范围区间来获得更快的查询速度并减少资源利用。 使用多键索引的边界交集来查询 边界交集代表多个边界相互重合的点。如有两个区间[3, 无穷大]和[无穷小6]这两个区间的交集就是[3,6]。Mongodb将这种求交集的方式应用到数据查询当中。有一个构建了索引的数组字段当使用$elemMatch指定多个查询条件查询数据时Mongodb会将查询条件合并。下边的例子说明了这种查询优化方法。 构建结合students并插入数据 db.students.insertMany([{_id: 1, name: Shawn, grades: [70,85]},{_id: 2, name: Elena, grades: [92, 84]} ]) 为数组创建多键索引 db.students.createIndex({grades: 1}) 构建查询语句 db.students.find( { grades: { $elemMatch: { $gte: 90, $lte:99 } } } ) 这个语句中只要数组中任何一个数据符合大于等于90小于等于99的数据。 单独分析每个查询条件第一个边界是[90无穷大]第二个边界是[无穷小99]在使用$elemMatch时mongodb先计算两个边界的交集[90,99] 当不使用$elemMatch时Mongodb不会先计算边界的交集。 db.students.find( { grades: { $gte: 90, $lte:99 } } ) 该查询会查询出满足下面两个条件的文档 数组grades中至少有一个元素大于等于90数组grades中至少有一个元素小于等于99 因为没有使用$elemMatch, Mongodb不会计算边界的交集。而是使用两个边界中的任何一个来查找不能保证使用哪一个条件。 从解释计划当中也能看出来两者查询数据范围的不同 db.students.find( { grades: { $elemMatch: { $gte: 90, $lte:99 } } } ).explain()db.students.find( { grades: { $gte: 90, $lte:99 } } ).explain() 下面两张图片中左边使用了$elemMatch, 右侧没有使用 复合多键索引边界混合 复合边界集合了复合多键索引中的边界。使用复合多键索引的多个字段边界值能够减少查询时间。Mongodb不需要单独计算每个边界的查询结果。如符合索引{temperature: 1, humidity: 1}有下面的两个边界 温度[80, 无穷大]湿度[无穷小20] 则计算出来的复合边界就是 { temperature: [80, 无穷大] humidity: [无穷小20]} 如果mongodb不能将这两个边界混合mongodb只能够使用前面的字段索引来查询数据。在这个例子中前面的字段是temperature。下面的应用详细描述了mongodb在复合多键索引中的边界混合。 非数组字段和数组字段的边界混合 这个例子展示了mongodb通过混合边界来定义更高效的查询约束提高性能 构建survey集合并插入数据 db.survey.insertMany([{ _id: 1, item: abc, ratings: [ 2, 5, 8 ] },{ _id: 2, item: xyz, ratings: [ 5, 8 ] } ]) 创建复合多键索引 db.survey.createIndex({item: 1, ratings: 1}) 构建查询语句 db.survey.find({item: abc, ratings: { $gte: 3}}) 直接看执行计划会更清楚一些 该查询使用字段item和数组字段rating进行查找。单独来看么一个查询条件 item字段值是“abc” mongodb在执行时转换为边界[abc, abc] rating边界是{$gte: 3},转换为[3,无穷大] mongodb将两个边界组合进行查询 非数组字段和多个数组字段的边界混合 下面的例子展现了mongodb怎样将非数组字段和多个数组字段的边界混合 构建集合survey2并插入数据 db.survey2.insertMany([{ _id: 1, item: abc, ratings: [ { score: 2, by: mn}, { score: 9, by: anon}] },{ _id: 2, item: xyz, ratings: [ { score: 5, by: anon}, { score: 7, by: wv}] } ]) 为集合添加符合多键索引 db.survey2.createIndex({item: 1, ratings.score: 1, ratings.by: 1}) 构建查询语句 db.surver2.find({item: xyz, ratings.score: { $lte: 5}, ratings.by: anon}) 单独看每个查询条件 item字段的边界 item: xyz, 转换为[[xyz, xyz]]score的边界是{$lte:5},转换为[无穷小 5]by的边界是 by: anon,转换为[anon, anon] Mongodb 将item的边界和ratings.score或ratings.by当中的一个边界混合取决于查询操作符和索引值。当mongodb不能确认使用哪个边界来进行混合。执行计划也无法确定使用哪个索引来进行查询。 为了保证mongodb能够将文档数组中的边界混合必须使用$elemMatch操作符 混合相同数组中多个字段的边界 为了能够混合相同数组中多个字段的索引边界必须满足下面两个条件 除了字段名称以外索引键必须在相同的路径上查询语句必须使用$elemMatch查询相同路径上的值 在嵌入式文档数组中使用点操作符的字段名称如“a.b.c.d”, 就是字段d的字段路径。为了能够混合相同数组中的多个边界$elemMatch必须在这个路径上并且不包含字段本身。如“a.b.c” 在前面创建的集合survey2中添加索引 db.surver2.createIndex({ratings.score: 1, ratings.by: 1}) 构建查询语句 使用$elemMatch操作符查询ratings字段查询出满足两个条件的数据。 db.surver2.find({ratings: {$elemMatch: {score: {$lte: 5}, by: anon}}}) 看查询计划能够看到mongodb混合了两个边界为一个边界
http://www.dnsts.com.cn/news/111866.html

相关文章:

  • 网站静态页面下载工具专门做2手手机的网站
  • 做网站还赚钱吗怎样建立公司网页
  • 网站收录下降原因学服装设计后悔死了
  • 山西做网站怎么做游戏网站建设杭州
  • 淘宝cms建站wordpress 传值
  • 英文网站seo发展前景微信公众平台注册官网登录入口
  • 企业网站运营方案公司网站建设服务费入什么科目
  • 公司网站建设款计什么科目网络公关的作用
  • 网站如何做下拉菜单建设银行网站打开自动关闭
  • 建设个人网站的心得体会温州网站快速排名
  • 网站备案有什么好处理jiathis wordpress
  • 学校网站制作多少钱电器网站制作价格
  • 爱站网怎么使用网络推广培训公司
  • 山东住房和城乡建设局网站首页seo网站结构如何优化
  • 做水产有什么网站海外广告优化师
  • 网站建设 艺麟盛世建设工程合同包括哪些合同?
  • 中等职业学校网站建设模块淮安制作企业网站
  • 蓝彩网络科技_齐齐哈尔微信营销_齐齐哈尔网站建设网站seo推广营销
  • 南通制作企业网站重庆快建网站
  • 广东网站设计哪家好wordpress哪个模板好用
  • wordpress搭建下载站网站开发的技术解决方案
  • 电商网站推广常见问题网站开发课程安排
  • 安陆市城乡建设局网站网站后台框架下载
  • 濮阳建站建设网页搜索历史怎么找到
  • 建设网站服务器自营方式的特点虚拟商品交易网站建设
  • 北京电子商务网站制作h5页面怎么做
  • 专项培训网站建设方案wordpress 延迟加载插件
  • 有专门做食品的网站吗百度关键词优化排名
  • 爱情动做网站推荐展示型网站包含哪些模块
  • 建设一个素材网站淘宝网店怎么注册开店