是否索引 Django ArrayField?
·
问题:是否索引 Django ArrayField?
在 Postgres 9.6 上使用 Django 1.8。我的一个模型有一个 ArrayField:
packages = ArrayField( models.CharField( max_length = 200 ), blank = True )
第一个问题是我应该添加索引吗?文档说
目前使用 db_index 会创建一个 btree 索引。这对查询没有特别重要的帮助。更有用的索引是 GIN 索引,您应该使用 RunSQL 操作创建它。
但目前尚不清楚我应该如何处理。
如果是,第二个问题,是在哪里放置 "db_index u003d True" ?像这样?:
packages = ArrayField( models.CharField( db_index = True, max_length = 200 ), blank = True )
解答
这就是 django 文档所说的。这就是postgresql 文档所说的
数组不是集合;搜索特定的数组元素可能是数据库设计错误的标志。考虑使用一个单独的表,其中每个项目将是一个数组元素。这将更容易搜索,并且对于大量元素可能会更好地扩展。
我应该为其添加索引吗? 这意味着您正在考虑搜索数组字段。 Postgresql 建议您不要这样做。事实上,您不应该将数组或 CSV 存储在单个列中。您应该做的是规范化您的表格。
如果是,第二个问题是在哪里放置“db_index u003d True”? 由于上述原因,不敬。
更多推荐
所有评论(0)