本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
最佳实践:充分利用 Neptune
下面是有关使用 Amazon Neptune 的一些一般建议。使用此信息作为参考可以快速找到使用 Amazon Neptune 和最大程度地提高性能的建议。
目录
- Amazon Neptune 基本操作指导
- 将 Gremlin 与 Neptune 结合使用的一般最佳实践
- 将 Gremlin Java 客户端与 Neptune 结合使用的最佳实践
- 使用最新兼容版本的 Apache TinkerPop Java 客户端
- 跨多个线程重用客户端对象
- 为读取和写入端点创建单独的 Gremlin Java 客户端对象
- 将多个只读副本端点添加到 Gremlin Java 连接池
- 关闭客户端以避免连接限制
- 在失效转移后创建新连接
- 将 maxInProcessPerConnection 和 maxSimultaneousUsagePerConnection 设置为相同值
- 将查询以字节码而不是字符串的格式发送到服务器
- 始终完全消耗查询返回的 ResultSet 或迭代器
- 按批次批量添加顶点和边缘
- 在 Java 虚拟机中禁用DNS缓存
- (可选)在每个查询级别设置超时
- 故障排除 java.util.concurrent.TimeoutException
- Neptune 使用 openCypher 和螺栓的最佳实践
- 在失效转移后创建新连接
- 长寿命应用程序的连接处理
- 的连接处理 AWS Lambda
- 在查询中首选定向边缘而非双向边缘
- Neptune 不支持在一个事务中进行多个并发查询
- 完成后关闭驱动程序对象
- 使用显式事务模式进行读写
- 异常的重试逻辑
- 使用单个SET子句一次设置多个属性
- 使用参数化查询
- 在子句中使用扁平化映射而不是嵌套映射 UNWIND
- 在 Variable-Length Path () 表达式中将限制性更强的节点放在左侧 VLP
- 使用精细的关系名称避免冗余的节点标签检查
- 尽可能指定边缘标签
- 尽可能避免使用该WITH子句
- 尽早在查询中放置限制性筛选器
- 明确检查属性是否存在
- 不要使用命名路径(除非是必需的)
- 避免 COLLECT (DISTINCT())
- 检索所有属性值时,最好使用属性函数而不是单个属性查找
- 在查询之外执行静态计算
- 使用 Batch 输入UNWIND代替单个语句
- 最好IDs对节点/关系使用自定义
- 避免在查询中进行 ~id 计算
- 使用 Neptune 的最佳实践 SPARQL