大佬教程收集整理的这篇文章主要介绍了PHP-Riak:快速获取多个项目,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
假设我在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中,通常比试图从数据库中准确获取所需的记录更好地检索比您需要更多的对象,并在应用程序级别进行筛选.
以上是大佬教程为你收集整理的PHP-Riak:快速获取多个项目全部内容,希望文章能够帮你解决PHP-Riak:快速获取多个项目所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。