Django,通过字符串进行过滤的速度是否比SQL关系更快?

时间:2019-04-11 15:25:02

标签: django django-models sqlperformance

如果我通过用户的three()user_id)查询用户的信息,而不是创建string模型并使用SQL关系将它们链接到其他模型,这是否是一个主要缺陷?

示例1:Profile存储在django会话中。)

user_id
  

注意:我将用户的个人资料信息存储在Auth0上。

示例2:({{1}存储在class Information(models.Model): user_id = models.CharField(...) ... # also applies for .filter() operations. information = Information.objects.get(user_id=request.getUser['user_id']) 中。)

user_id
  

注意:使用此方法,“配置文件”将只有一个字段Profile

在Django上,使用字符串而不是查询对象会影响检索项目的性能吗?

1 个答案:

答案 0 :(得分:3)

正如Dirk所说的,性能不是问题。索引一列后,与其他因素相比,数据类型之间的性能差异应可忽略不计。这是related SO question,用于提供更多视角。

您应该注意的是防止重复数据的完整性,然后您必须自己维护它们的完整性,而不是依赖数据库中经过良好测试的完整性检查。

另一方面是,如果您的数据之间确实存在关联,则绝对应确保使用Django的relationships在模型中正确表示它们。否则,使用Django的ORM根本没有多大意义。祝你好运!