我有一个商店Web应用程序React前端,背面是Firebase,Firestore作为数据库。
我有500件商店的商品。我希望只有桌面客户端。
更好的做法是:
.filter()
进行过滤; OR 要一次下载所有文件,我在想:
我正在考虑仅下载过滤结果,
.filter()
更快地做出响应( )。我知道它可能取决于数据库结构,因为Firestore是浅层查询,因此我将数据结构化为尽可能浅,文档中没有子集合。
我只是比较香草的东西,所以后面没有Algolia或Elastic,前面没有搜索或索引库。
答案 0 :(得分:1)
500是非常少量的文档。现代桌面系统绝对不会对列表进行排序和过滤。您可能会对Cloud Firestore的帐单感到不高兴,因为它使帐单一直排序和过滤所有查询,而不是仅下载一次并在本地完成所有查询的性能。不过,这取决于您希望应用程序用户的行为(以及文档的大小以及他们的连接速度)。
当购买50,000件产品(在低端台式机上)时,您可能会发现一些性能问题,但可能不足以给任何人带来不便。尝试编写几行代码来排序或过滤50,000个随机整数,然后查看需要花费多长时间。您的实际应用程序代码与实际数据的性能应该没有太大不同。
如果您能够在本地缓存文档而不必再次查询所有文档,那么您会做得更好。考虑添加文档字段以进行最后更新,并仅查询自上次查询以来已更新的文档。您将节省更多的金钱和时间。
最后,您应该对用例进行基准测试,以获取一些实用数据。花费更少的时间进行猜测,而花费更多的时间进行测量。