postgreSQL中GIN索引的大小



我在Django中创建了一个模型。

class MyModel(models.Model):
features = TextField(blank=True, default='')

有几种可能的方法可以将数据存储在feature字段中。下面的一些例子。

  1. feature1;feature2
  2. feature1, feature2
  3. 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'));

最新更新