是否可以将db_index = True添加到不是唯一的字段(django)



我有一个模型,有一些字段,如:

current_datetime = models.TimeField(auto_now_add=True)

new_datetime = models。DateTimeField (null = True, db_index = True)

和data就像:

currun_date_time = 2023-01-22T09:42:00+0330 new_date_time =2023-01-22T09:00:00+0330currun_date_time = 2023-01-22T09:52:00+0330 new_date_time =2023-01-22T09:00:00+0330

currun_date_time = 2023-01-22T10:02:00+0330 new_datetime =2023-01-22T10:00:00+0330

new_datetime是否可能有db_index = True ?

我想要这个索引的原因是有很多行(超过20万,每天都在增加),并且有一个地方,用户可以选择日期时间范围并查看结果(这是一个统计网站)。我想发送一个查询与过滤日期时间范围,所以它应该做得很快。顺便说一下,我使用的是postgresql

如果你对这些网站有处理数据或类似的技巧,我也很高兴听到

谢谢。

是,可以将datetime字段设置为true。这可以提升按给定字段排序或筛选的查询的性能。

在datetime字段中添加索引的其他更好的方法是:

  • 评估查询计划并检测任何缓慢的进程或缺失的指标,利用"解释"你的指挥数据库。
  • 使用"限制"one_answers";offset"的参数只获取必要的数据。
  • 用于在单个查询中检索关联数据,而不是许多查询,包括"select_related"one_answers"prefetch_related">
  • 存储详细查询的结果并避免运行同一查询多次,利用缓存系统,如Redis或Memcached.
  • 此外,如果行太多,不需要数据很长一段时间,你可以考虑提交

最新更新