我在Django中创建了一个模型。
class MyModel(models.Model):
features = TextField(blank=True, default='')
有几种可能的方法可以将数据存储在feature
字段中。下面的一些例子。
feature1;feature2
feature1, feature2
feature1,feature2
依此类推。我使用migrations.RunSQL()
为该字段创建了一个GIN索引(感谢以下答案(。postgreSQL命令如下所示
CREATE INDEX features_search_idx ON "mymodel" USING gin (regexp_split_to_array("mymodel"."features", '[,;\s]+'));
现在我需要检查数据库中创建的索引的大小。我试着用以下命令
SELECT pg_size_pretty (pg_indexes_size("mymodel"."features_search_idx"));
SELECT pg_size_pretty(pg_indexes_size("features_search_idx")) FROM "mymodel";
后者因ERROR: column "features_search_idx" does not exist
而失败,前者因ERROR: missing FROM-clause entry for table "mymodel"
而失败。
如何检查索引大小?
pg_indexes_size
采用类型为regclass
的参数,即对象ID,该对象ID表示为对象名称的字符串。因此,如果您不提供对象ID,则必须提供一个字符串(单引号(,即表的名称:
SELECT pg_size_pretty (pg_indexes_size('mymodel.features_search_idx'));