Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase (…)上的ref.endAt().limit(n).on的性能与.priority和name类似吗?_Firebase - Fatal编程技术网

Firebase (…)上的ref.endAt().limit(n).on的性能与.priority和name类似吗?

Firebase (…)上的ref.endAt().limit(n).on的性能与.priority和name类似吗?,firebase,Firebase,我目前正在使用ref.endAt.limitn.on。。。获取“最后”n个值 所有.priority都为null,因此列表按名称排序,名称是一个0填充的时间戳 似乎如果我将每个项目的.priority也设置为时间戳,那么它将占用更多的存储空间。是吗 无论是否占用更多存储空间,如果.priority全部为空,则使用名称排序;如果.priority全部为唯一,则使用.priority排序,则检索最后n个排序的项目是否存在显著的性能差异 我目前正在设计它可以很好地处理列表中的10000个ish项目。当

我目前正在使用ref.endAt.limitn.on。。。获取“最后”n个值

所有.priority都为null,因此列表按名称排序,名称是一个0填充的时间戳

似乎如果我将每个项目的.priority也设置为时间戳,那么它将占用更多的存储空间。是吗

无论是否占用更多存储空间,如果.priority全部为空,则使用名称排序;如果.priority全部为唯一,则使用.priority排序,则检索最后n个排序的项目是否存在显著的性能差异

我目前正在设计它可以很好地处理列表中的10000个ish项目。当一个列表包含超过1000000个项目时,.priority或name排序更好吗

使用ref.startAtnull,timeStart.endAtnull,timeEnd.on…,怎么样


我可以分析,但我如何知道服务器负载或网络延迟正在或正在影响它?

使用优先级或键名称对项目进行排序应该没有性能差异。Firebase首先查找排序项目的优先级,如果不存在,则按键名对项目进行排序。使用优先级而不是键名可能会带来很小的性能提升,但我认为这一点很小。

使用startAt和endAt获取大型节点的子集时,我看不到任何性能优势。示例:获得一个10000元素的对象大约需要2秒钟。如果我使用startAt.limit1000将其分解成更小的块,那么10个调用中的每个调用也需要2秒钟。事实上,每个调用似乎比没有startAt或limit的单个回调要花更长的时间。