本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
最佳实践:充分利用 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
- 使用 openCypher 和 Bolt 的 Neptune 最佳实践
- 在查询中首选定向边缘而非双向边缘
- Neptune 不支持在一个事务中进行多个并发查询
- 在失效转移后创建新连接
- 长寿命应用程序的连接处理
- 的连接处理 AWS Lambda
- 完成后关闭驱动程序对象
- 使用显式事务模式进行读写
- 异常的重试逻辑
- 使用单个 SET 子句一次设置多个属性
- 使用 SET 子句一次删除多个属性
- 使用参数化查询
- 在 UNWIND 子句中使用扁平化地图而不是嵌套地图
- 在可变长度路径 (VLP) 表达式中将限制性更强的节点放在左侧
- 使用精细的关系名称避免冗余的节点标签检查
- 尽可能指定边缘标签
- 尽可能避免使用 WITH 子句
- 尽早在查询中放置限制性筛选器
- 明确检查属性是否存在
- 不要使用命名路径(除非是必需的)
- 避免收集 (不同 ())
- 检索所有属性值时,最好使用属性函数而不是单个属性查找
- 在查询之外执行静态计算
- 使用 UNWIND 而不是单个语句进行批量输入
- 最好为节点/关系使用自定义 ID
- 避免在查询中进行~id计算
- 使用 SPARQL 的 Neptune 最佳实践