假设我在PHP中有此数组.

$ids = [

246,

8362,

5241,

2586,

6548,

9372,

28504,

14,

5729

];

这些数组元素对应于存储桶“ articles”中的项目,有时此数组的深度可能约为1000个元素.

目前,我正在遍历所有这些数据,并将数据一一提取.

$articles = [];

foreach($ids as $id)

{

$articles[] = Riak::get("articles.$id");

}

这比id列表变得很长时我要花费的时间更多.

有没有更快的方法可以从Riak桶中拉出物品清单?我环顾了一下,map-reduce很有用,但显然会导致比我使用顺序GET请求节省的开销更多的开销.

解决方法:

遗憾的是,要从Riak有效地获取大量记录非常困难,因为这些记录分散在整个群集中,必须单独进行检索.一些客户端库最近获得了对客户端多获取的支持,该支持允许使用多个连接并行获取对象,但是我认为这还没有到达PHP客户端.

使用mapreduce进行此操作将减少对数据库的调用次数,但不会导致仲裁读取,因为它仅查询覆盖的一组分区.但是,Mapreduce是查询数据的一种相当广泛的方法,并且无法像直接键访问那样进行扩展或执行.

如果这是您需要执行的常见操作,则可能表明您的数据模型过于规范化,并且可能需要取消规范化以使其更好地支持您的应用程序及其访问模式.

确切地说,如何最好地做到这一点需要有关您的数据以及访问和查询模式的知识.一种方法可能是使用已知的和可预测的密钥基于例如固定范围的商品ID.这将使文章的检索效率更高,因为需要读取的对象数量大大减少,但是在更新和插入时可能会增加您的复杂性.

另一种选择是通过复制数据去规范化.如果您例如仅需要文章中的一些信息,您就可以将这些数据存储在单独的对象中,这些对象专门用于有效地服务于这些查询.

在Riak中,通常比试图从数据库中准确获取所需的记录更好地检索比您需要更多的对象,并在应用程序级别进行筛选.

标签:riak,php

来源: https://codeday.me/bug/20191122/2056951.html

php riak,PHP-Riak:快速获取多个项目相关推荐

  1. 网络营销外包专员浅析网站网络营销外包如何快速获取关键词排名

    企业网站正式上线后在激烈的行业竞争中理应思索如何做好网站推广工作,站长可根据企业品牌现状为网站指定相应的网站排名优化策略,为网站更好的呈现和展示在用户面前,争取能够获得搜索引擎和用户的喜爱.那么应该如 ...

  2. html中css路径和xpath路径,6.1 HTML的简单介绍和快速获取XPath和CSS路径

    Web UI 自动化其实就是在页面元素,所以在真正进入页面元素操作之前,我们先认识下我们后面会用到的一些HTML相关知识. HTML的简单介绍 什么是HTML HTML(Hyper Text Mark ...

  3. Python实例 -- 如何快速获取列表中最大的三个元素

    如何快速获取列表中最大的三个元素 最近在做实验,期间需要在一个列表中获取最大的三个元素,自己写的方法复杂度太高,放上大牛的方法,复杂度很低.多看几遍,才能体会到大概的精髓.这道题也是Python的面试 ...

  4. 过年装X神器,快速获取 wifi 密码!

    祝各位朋友们新年快乐,牛年大吉???? 在春节期间,亲朋好友串个门聚一聚是难免的了,作为主人,被问 wifi 密码是常见的事,每次都需要给客人们一遍又一遍的说密码,感觉很low啊.作为程序员,这完全不 ...

  5. JS快速获取图片宽高的方法

    JS快速获取图片宽高的方法 快速获取图片的宽高其实是为了预先做好排版样式布局做准备,通过快速获取图片宽高的方法比onload方法要节省很多时间,甚至一分钟以上都有可能,并且这种方法适用主流浏览器包括I ...

  6. MS SQLSERVER中如何快速获取表的记录总数

    (转自:http://www.cnblogs.com/pingkeke/archive/2006/05/29/411995.html) 在数据库应用的设计中,我们往往会需要获取某些表的记录总数,用于判 ...

  7. 29 | 堆的应用:如何快速获取到Top 10最热门的搜索关键词?

    为什么评价算法性能是根据时间和空间复杂度,而不是别的参数?是因为计算机结构是冯诺依曼体系,除了输入输出设备和控制器,就剩下运算器和存储器了 问题引入 搜索引擎的热门搜索排行榜功能是如何实现的?搜索引擎 ...

  8. java快速获取大图片的分辨率(大图片格式JPG,tiff ,eg)

    问题描述:怎样快速获取一个20MB图片的分辨率? 程序代码: 1 package test; 2 3 import java.awt.Dimension; 4 import java.awt.imag ...

  9. Win7电脑快速获取超级管理员权限的方法

    Win7系统中经常需要超级管理员权限才能删除文件,否则就会提示"需要管理员权限".那么Win7电脑如何快速获取超级管理员权限Win7电脑如何快速获取超级管理员权限?这里就有小编来告 ...

最新文章

  1. 又遇到问题:wrong ELF class: ELFCLASS32 in Unknown on line
  2. 3.6 mkpasswd命令
  3. python在函数内部访问外部全局变量的方法_在函数外部访问函数变量,而无需使用“全局”...
  4. pat 乙级 1029 旧键盘(C++)
  5. 小程序 获取当前用户城市信息(省市区)
  6. 记一次 OOM 的原因和处理 出现大量 close_wait,项目无法访问 activeMq和 poi 出现的 OOM
  7. 学物理也能拿数学世界级奖!每逢实验失败就跑步......河大女生太励志了!!
  8. python中msg是什么意思_python下载.msg文件的附件
  9. 回溯递归算法----八皇后问题
  10. 你见过最差的算法工程师能差到什么程度?
  11. WinForm sender初级应用
  12. 贪吃蛇代码c语言100行,贪吃蛇代码-C语言.doc
  13. 清空计算机搜索文件历史记录,如何查找已删除的浏览历史记录
  14. Ubuntu 18.04 LTS 桌面版 WPS 安装字体
  15. CAD在画线的过程中显示长度和角度
  16. Typora超级纯净免费记笔记软件分享给大家
  17. 计算机段落格式解释,职称计算机考试Word教程:Word段落格式
  18. Java的Integer和Integer比较相等
  19. 计算机应用基础评价手册怎么填,《评价手册》填写说明(必填)
  20. “中文问题没商量”之Ant中的中文问题

热门文章

  1. ionic4的ion-searchbar的setFocus()方法使用
  2. AR.js 学习笔记
  3. HDU 5514 题解
  4. 用户 不在 sudoers 文件中。此事将被报告
  5. keep-alive上加v-if导致缓存失效
  6. 烽火HG680-KA/KB_Hi3798MV310_红外蓝牙语音_开启无线开关_通刷固件包
  7. JavaScript 练手小技巧:页面高亮操作提示和蒙板
  8. win10打不开磁盘提示本次操作由于这台计算机的限制而被取消怎么办
  9. 宝宝头上有一圈不长头发
  10. 美国计算机转教育专业,2021年可以申请转专业计算机科学CS专业的这3所美国大学 可别错过哟!...