postgreSQL 中 GIN 索引的大小

Size of a GIN index in postgreSQL

我已经在 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,则必须提供 string(单引号),即 table:

的名称
SELECT pg_size_pretty (pg_indexes_size('mymodel.features_search_idx'));