Node.js DynamoDB滤波器表达式vs GSIs
我正在使用DynamoDB来存储我的数据。我正在创建一个仪表板应用程序,用户可以在其中按字段排序、按字段搜索和一次添加多个过滤器。表中大约有100-1000个条目 要实现此搜索、筛选和排序功能,有两种方法可以实现:Node.js DynamoDB滤波器表达式vs GSIs,node.js,amazon-web-services,amazon-dynamodb,dynamodb-queries,Node.js,Amazon Web Services,Amazon Dynamodb,Dynamodb Queries,我正在使用DynamoDB来存储我的数据。我正在创建一个仪表板应用程序,用户可以在其中按字段排序、按字段搜索和一次添加多个过滤器。表中大约有100-1000个条目 要实现此搜索、筛选和排序功能,有两种方法可以实现: 使用FilterExpression。然而,一个简单的解决方案需要在筛选之前提取所有数据(不是“真”查询),需要更多的服务器端处理+FilterExpression,这通常被视为“错误做法” 分别为每个字段创建GSI。允许我使用真正的查询按字段进行搜索和排序,减少服务器端处理-可以
非常感谢 老实说,排序/搜索是DDB下降的地方 考虑到你所说的数据量,我只想使用极光
在规模上,假设你达到了极光的极限,最好使用前端DDB和Elasticsearch。老实说,排序/搜索是DDB下降的地方 考虑到你所说的数据量,我只想使用极光
在scale上,假设您达到了Aurora的极限,最好使用前端DDB和Elasticsearch。hmm,当您在SQL中执行SELECT查询时,我是否仍在扫描表中的每一行,并查找具有指定条件的行?i、 e.SELECT的行为是否与FilterExpression使用DynamoDB时的行为相同?如果表上没有任何索引,则会读取每一行。但是RDBMS中的索引比DDB indexes更灵活。嗯,当您在SQL中执行SELECT查询时,我是否仍在扫描表中的每一行,并查找具有指定条件的行?i、 e.SELECT的行为是否与FilterExpression使用DynamoDB时的行为相同?如果表上没有任何索引,则会读取每一行。但是RDBMS中的索引比DDB索引更灵活。