在我目前正在处理的应用程序中,我们需要确保特定种类中三个属性的元组的唯一性。因此,在创建新实体时,我们需要确保不存在具有给定元组的那种实体。
我对这个问题的幼稚方法是创建一个简单的查询,根据三个字段过滤相等性。如果找到具有给定字段的实体,则操作将中止,否则将插入具有这些字段和其他相关数据的新实体。但是,当尝试并行插入许多实体时,会出现事务争用。
但是,只要我添加了这三个属性的复合索引,就不会发生争用。我没有改变代码,我只是为这些字段添加了一个复合索引。
我一直在挖掘所有文档并四处寻找遇到类似问题的人,但没有人提到过这种“解决方法”。
我错过了什么吗?或许发现了什么?或者这是预期的行为;内置索引还不够吗?