Django的unique_together功能的性能成本是多少

时间:2017-09-07 17:49:46

标签: mysql django database django-models

对我来说,使用更复杂的unique_together元组似乎会有很多处理或搜索。看起来更好的选择是在数据库中创建记录时严格处理唯一性。有没有人碰巧知道使用unique_together的成本是什么,特别是如果它们涉及更复杂的元组?

我目前有一个模型,我可能需要从

切换
index_together = unique_together = (('a', 'b'), ('a', 'c', 'd'))

index_together = unique_together = (('a', 'b', 'e'), ('a', 'c', 'd', 'e'))

1 个答案:

答案 0 :(得分:3)

unique_together在数据库级别实现为UNIQUE CONSTRAINT。阅读SQL索引如何工作,关于读/写比率(索引是在写入数据时构建的,因此它会降低写入操作的速度,但是当读取的次数多于写入时不是问题时),请阅读索引选择性/基数。使用EXPLAIN查询检查在检索数据时是否使用(未忽略)索引。

拥有多个大的唯一索引是表格应该被拆分为两个或几个具有较少列数的标志之一,通过一对多关系相关联。