{"title":"PostgreSQL 特有模型索引","version":"3.1","locale":"zh-hans","docname":"ref/contrib/postgres/indexes","url":"/zh-hans/3.1/ref/contrib/postgres/indexes/","canonical":"https://djangodocs.dev/zh-hans/3.1/ref/contrib/postgres/indexes/","summary":"以下是 PostgreSQL 特有的 索引 可以从 django.contrib.postgres.indexes 模块中获得。 BloomIndex Link to this heading # class BloomIndex ( length = None , columns = () , ** options )…","html":"<span id=\"postgresql-specific-model-indexes\"></span><h1>PostgreSQL 特有模型索引<a class=\"heading-anchor\" href=\"#module-django.contrib.postgres.indexes\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>以下是 PostgreSQL 特有的 <a class=\"reference internal\" href=\"/zh-hans/3.1/ref/models/indexes/\"><span class=\"doc\">索引</span></a> 可以从 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.postgres.indexes</span></code> 模块中获得。</p>\n<section id=\"bloomindex\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">BloomIndex</span></code><a class=\"heading-anchor\" href=\"#bloomindex\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.indexes.BloomIndex\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">BloomIndex</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">length</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">columns</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">()</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">options</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.indexes.BloomIndex\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><aside class=\"version-note version-added\" data-version=\"3.1\">\n<p class=\"version-note-title\">New in Django 3.1</p></aside>\n<p>创建一个 <a class=\"reference external\" href=\"https://www.postgresql.org/docs/current/bloom.html\">bloom</a> 索引。</p>\n<p>要使用这个索引访问，你需要激活 PostgreSQL 上的 <a class=\"reference external\" href=\"https://www.postgresql.org/docs/current/bloom.html\">bloom</a> 扩展。你可以使用 <a class=\"reference internal\" href=\"/zh-hans/3.1/ref/contrib/postgres/operations/#django.contrib.postgres.operations.BloomExtension\" title=\"django.contrib.postgres.operations.BloomExtension\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">BloomExtension</span></code></a> 迁移操作来安装它。</p>\n<p>为 <code class=\"docutils literal notranslate\"><span class=\"pre\">length</span></code> 参数提供一个从 1 到 4096 的整数位，用于指定每个索引条目的长度。PostgreSQL 的默认值是 80。</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">columns</span></code> 参数取一个元组或最多 32 个值的列表，这些值是 1 到 4095 的整数位。</p>\n</dd></dl>\n\n</section>\n<section id=\"brinindex\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">BrinIndex</span></code><a class=\"heading-anchor\" href=\"#brinindex\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.indexes.BrinIndex\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">BrinIndex</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">autosummarize</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">pages_per_range</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">options</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.indexes.BrinIndex\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>创建一个 <a class=\"reference external\" href=\"https://www.postgresql.org/docs/current/brin-intro.html\">BRIN 索引</a> 。</p>\n<p>将 <code class=\"docutils literal notranslate\"><span class=\"pre\">autosummarize</span></code> 参数设置为 <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>，启用 autovacuum 进行 <a class=\"reference external\" href=\"https://www.postgresql.org/docs/current/brin-intro.html#BRIN-OPERATION\">自动汇总</a> 。</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">pages_per_range</span></code> 参数取一个正整数。</p>\n</dd></dl>\n\n</section>\n<section id=\"btreeindex\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">BTreeIndex</span></code><a class=\"heading-anchor\" href=\"#btreeindex\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.indexes.BTreeIndex\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">BTreeIndex</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">fillfactor</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">options</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.indexes.BTreeIndex\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>创建一个 B 树索引。</p>\n<p>为 <a class=\"reference external\" href=\"https://www.postgresql.org/docs/current/sql-createindex.html#SQL-CREATEINDEX-STORAGE-PARAMETERS\">fillfactor</a> 参数提供一个从  10 到 100 的整数值，以调整索引页的打包程度。PostgreSQL 的默认值是 90。</p>\n</dd></dl>\n\n</section>\n<section id=\"ginindex\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">GinIndex</span></code><a class=\"heading-anchor\" href=\"#ginindex\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.indexes.GinIndex\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">GinIndex</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">fastupdate</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">gin_pending_list_limit</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">options</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.indexes.GinIndex\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>创建一个 <a class=\"reference external\" href=\"https://www.postgresql.org/docs/current/gin.html\">gin 索引</a> 。</p>\n<p>要想在不在 <a class=\"reference external\" href=\"https://www.postgresql.org/docs/current/gin-builtin-opclasses.html\">内置运算符类</a> 的数据类型上使用这个索引，需要在 PostgreSQL 上激活 <a class=\"reference external\" href=\"https://www.postgresql.org/docs/current/btree-gin.html\">btree_gin 扩展</a> 。你可以使用 <a class=\"reference internal\" href=\"/zh-hans/3.1/ref/contrib/postgres/operations/#django.contrib.postgres.operations.BtreeGinExtension\" title=\"django.contrib.postgres.operations.BtreeGinExtension\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">BtreeGinExtension</span></code></a> 迁移操作来安装它。</p>\n<p>将 <code class=\"docutils literal notranslate\"><span class=\"pre\">fastupdate</span></code> 参数设置为 <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>，以禁用 PostgreSQL 中默认启用的 <a class=\"reference external\" href=\"https://www.postgresql.org/docs/current/gin-implementation.html#GIN-FAST-UPDATE\">GIN 快速更新技术</a> 。</p>\n<p>为 <a class=\"reference external\" href=\"https://www.postgresql.org/docs/current/runtime-config-client.html#GUC-GIN-PENDING-LIST-LIMIT\">gin_pending_list_limit</a> 参数提供一个整数字节数，以调整 GIN 待定列表的最大大小，当 <code class=\"docutils literal notranslate\"><span class=\"pre\">fastupdate</span></code> 启用时使用。</p>\n</dd></dl>\n\n</section>\n<section id=\"gistindex\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">GistIndex</span></code><a class=\"heading-anchor\" href=\"#gistindex\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.indexes.GistIndex\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">GistIndex</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">buffering</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">fillfactor</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">options</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.indexes.GistIndex\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>创建一个 <a class=\"reference external\" href=\"https://www.postgresql.org/docs/current/gist.html\">GiST 索引</a> 。这些索引在空间字段上会自动创建 <a class=\"reference internal\" href=\"/zh-hans/3.1/ref/contrib/gis/model-api/#django.contrib.gis.db.models.BaseSpatialField.spatial_index\" title=\"django.contrib.gis.db.models.BaseSpatialField.spatial_index\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">spatial_index=True</span></code></a>。它们在其他类型上也很有用，比如 <code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HStoreField</span></code> 或者 <span class=\"xref std std-ref\">range fields</span>。</p>\n<p>要在不在内置的 <a class=\"reference external\" href=\"https://www.postgresql.org/docs/current/gist-builtin-opclasses.html\">gist 操作类</a> 的数据类型上使用这个索引，需要在 PostgreSQL 上激活 <a class=\"reference external\" href=\"https://www.postgresql.org/docs/current/btree-gist.html\">btree_gist 扩展</a> 。你可以使用 <a class=\"reference internal\" href=\"/zh-hans/3.1/ref/contrib/postgres/operations/#django.contrib.postgres.operations.BtreeGistExtension\" title=\"django.contrib.postgres.operations.BtreeGistExtension\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">BtreeGistExtension</span></code></a> 迁移操作来安装它。</p>\n<p>将 <code class=\"docutils literal notranslate\"><span class=\"pre\">buffering</span></code> 参数设置为 <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> 或 <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>，手动启用或禁用索引的 <a class=\"reference external\" href=\"https://www.postgresql.org/docs/current/gist-implementation.html#GIST-BUFFERING-BUILD\">buffering build</a> 。</p>\n<p>为 <a class=\"reference external\" href=\"https://www.postgresql.org/docs/current/sql-createindex.html#SQL-CREATEINDEX-STORAGE-PARAMETERS\">fillfactor</a> 参数提供一个从  10 到 100 的整数值，以调整索引页的打包程度。PostgreSQL 的默认值是 90。</p>\n</dd></dl>\n\n</section>\n<section id=\"hashindex\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">HashIndex</span></code><a class=\"heading-anchor\" href=\"#hashindex\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.indexes.HashIndex\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">HashIndex</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">fillfactor</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">options</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.indexes.HashIndex\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>创建一个哈希索引。</p>\n<p>为 <a class=\"reference external\" href=\"https://www.postgresql.org/docs/current/sql-createindex.html#SQL-CREATEINDEX-STORAGE-PARAMETERS\">fillfactor</a> 参数提供一个从  10 到 100 的整数值，以调整索引页的打包程度。PostgreSQL 的默认值是 90。</p>\n<aside class=\"admonition-use-this-index-only-on-postgresql-10-and-later admonition\">\n<p class=\"admonition-title\">只在 PostgreSQL 10 及以后的版本中使用此索引。</p>\n<p>哈希索引在 PostgreSQL 中已经存在很长时间了，但在旧版本中，哈希索引存在一些数据完整性问题。</p>\n</aside>\n</dd></dl>\n\n</section>\n<section id=\"spgistindex\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">SpGistIndex</span></code><a class=\"heading-anchor\" href=\"#spgistindex\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.indexes.SpGistIndex\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">SpGistIndex</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">fillfactor</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">options</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.indexes.SpGistIndex\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>创建 <a class=\"reference external\" href=\"https://www.postgresql.org/docs/current/spgist.html\">SP-GIST 索引</a> 。</p>\n<p>为 <a class=\"reference external\" href=\"https://www.postgresql.org/docs/current/sql-createindex.html#SQL-CREATEINDEX-STORAGE-PARAMETERS\">fillfactor</a> 参数提供一个从  10 到 100 的整数值，以调整索引页的打包程度。PostgreSQL 的默认值是 90。</p>\n</dd></dl>\n\n</section>","rootId":"module-django.contrib.postgres.indexes","toc":[{"title":"BloomIndex","anchor":"bloomindex","children":[]},{"title":"BrinIndex","anchor":"brinindex","children":[]},{"title":"BTreeIndex","anchor":"btreeindex","children":[]},{"title":"GinIndex","anchor":"ginindex","children":[]},{"title":"GistIndex","anchor":"gistindex","children":[]},{"title":"HashIndex","anchor":"hashindex","children":[]},{"title":"SpGistIndex","anchor":"spgistindex","children":[]}],"breadcrumbs":[{"docname":"ref/index","title":"API 参考","url":"/zh-hans/3.1/ref/"},{"docname":"ref/contrib/index","title":"contrib 包","url":"/zh-hans/3.1/ref/contrib/"},{"docname":"ref/contrib/postgres/index","title":"django.contrib.postgres","url":"/zh-hans/3.1/ref/contrib/postgres/"}],"prev":{"docname":"ref/contrib/postgres/functions","title":"PostgreSQL 特有数据库函数","url":"/zh-hans/3.1/ref/contrib/postgres/functions/"},"next":{"docname":"ref/contrib/postgres/lookups","title":"PostgreSQL 特有查找","url":"/zh-hans/3.1/ref/contrib/postgres/lookups/"},"formats":{"html":"/zh-hans/3.1/ref/contrib/postgres/indexes/","markdown":"/zh-hans/3.1/ref/contrib/postgres/indexes.md","json":"/zh-hans/3.1/ref/contrib/postgres/indexes.json"},"source":"https://github.com/django/django/blob/stable/3.1.x/docs/ref/contrib/postgres/indexes.txt","official":"https://docs.djangoproject.com/zh-hans/3.1/ref/contrib/postgres/indexes/","inVersions":["6.1","6.0","5.2","5.1","5.0","4.2","4.1","4.0","3.2","3.1","3.0","2.2","2.1","2.0"],"inLocales":["en","zh-hans","fr","ja","id","pt-br","ko","es","el","pl"]}