{"Entry":{"collection":"indexam","key":"brin","name":"BRIN","aliases":["block range index","physical correlation","range summary"],"metadata":{"aliases":["block range index","physical correlation","range summary"],"category":"Block summaries","content_hash":"0aa5bb50132e748546471a7a8bc87464a22858574ddc65ddaac95144a1d87248","derived_content_hash":"c854a75a095ec681df8bf71a85a5a8f9e8deb7054138553ed59ba1f59f11e1c2","imported_at":"2026-09-30T00:40:37.245532+08:00","name":"BRIN","name_zh":"BRIN","slug":"brin","summary":"BRIN indexes (a shorthand for Block Range INdexes) store summaries about the values stored in consecutive physical block ranges of a table. Thus, they are most effective for columns whose values are well-correlated with the physical order of the table rows. Like GiST, SP-GiST and GIN, BRIN can support many different indexing strategies, and the particular operators with which a BRIN index can be used vary depending on the indexing strategy. For data types that have a linear sort order, the indexed data corresponds to the minimum and maximum values of the values in the column for each block range. This supports indexed queries using these operators:"}},"Definition":{"Collection":"indexam","Key":"brin","SourceDatabase":"center","Version":"18","SourceTable":"index_am","SourceKey":"brin","SourceRevision":"0e39ebd4fddbd990280e62f4503f0bd18765bbd990dccf4cba976b5d47da45e7","Facts":{"capabilities":[{"evidence":[{"anchor":"INDEXES-ORDERING","file":"indexes-ordering.html","label":"PostgreSQL 18.6 · indexes-ordering","quote":"In addition to simply finding the rows to be returned by a query, an index may be able to deliver them in a specific sorted order. This allows a query's ORDER BY specification to be honored without a separate sorting step. Of the index types currently supported by PostgreSQL , only B-tree can produce sorted output — the other index types return matching rows in an unspecified, implementation-dependent order.","sha256":"85fac99c7c66ed19dd021f12b5cc53ce18aa5bfa4b56c8c168317f99b8f12d3b","url":"/docs/18/indexes-ordering.html#INDEXES-ORDERING"}],"key":"ordered","label":"Sorted output","note":"Ordinary sorted output is distinct from ordering by an operator, such as nearest-neighbor distance.","state":"no","value":"No"},{"evidence":[{"anchor":"INDEXES-UNIQUE","file":"indexes-unique.html","label":"PostgreSQL 18.6 · indexes-unique","quote":"Currently, only B-tree indexes can be declared unique.","sha256":"7c3eac7fa180b22534ff01df0c68155f15b6b360ffe35507c5266059116840db","url":"/docs/18/indexes-unique.html#INDEXES-UNIQUE"}],"key":"unique","label":"Unique keys","note":"This means a unique index. Exclusion constraints use a different contract.","state":"no","value":"No"},{"evidence":[{"anchor":"INDEXES-MULTICOLUMN","file":"indexes-multicolumn.html","label":"PostgreSQL 18.6 · indexes-multicolumn","quote":"Currently, only the B-tree, GiST, GIN, and BRIN index types support multiple-key-column indexes. Whether there can be multiple key columns is independent of whether INCLUDE columns can be added to the index. Indexes can have up to 32 columns, including INCLUDE columns. (This limit can be altered when building PostgreSQL ; see the file pg_config_manual.h .)","sha256":"c0a799ec49b8ef057a63d465fb1d72a3b81e16d652c28a71734d45592d081202","url":"/docs/18/indexes-multicolumn.html#INDEXES-MULTICOLUMN"}],"key":"multicolumn","label":"Multiple key columns","note":"Multiple search keys are distinct from non-key INCLUDE payload columns.","state":"yes","value":"Yes"},{"evidence":[{"anchor":"SQL-CREATEINDEX","file":"sql-createindex.html","label":"PostgreSQL 18.6 · sql-createindex","quote":"Currently, the B-tree, GiST and SP-GiST index access methods support this feature. In these indexes, the values of columns listed in the INCLUDE clause are included in leaf tuples which correspond to heap tuples, but are not included in upper-level index entries used for tree navigation.","sha256":"6aa00da55815d13d0355dd25cb1cdb603fa36964993f164d1b6f486011282580","url":"/docs/18/sql-createindex.html#SQL-CREATEINDEX"}],"key":"include","label":"INCLUDE columns","note":"Payload columns do not become search keys. Wide payloads can exceed the index tuple-size limit.","state":"no","value":"No"},{"evidence":[{"anchor":"INDEXES-INDEX-ONLY-SCANS","file":"indexes-index-only-scans.html","label":"PostgreSQL 18.6 · indexes-index-only-scans","quote":"The index type must support index-only scans. B-tree indexes always do. GiST and SP-GiST indexes support index-only scans for some operator classes but not others. Other index types have no support. The underlying requirement is that the index must physically store, or else be able to reconstruct, the original data value for each index entry. As a counterexample, GIN indexes cannot support index-only scans because each index entry typically holds only part of the original data value.","sha256":"2322ec12b82f3fd01ee4072049caaa5a0190148ac68d98c0fcd6eda958828a83","url":"/docs/18/indexes-index-only-scans.html#INDEXES-INDEX-ONLY-SCANS"}],"key":"index_only","label":"Index-only scans","note":"The query must use covered values; visibility-map state determines whether heap visits can be avoided.","state":"no","value":"No"},{"evidence":[],"key":"distance","label":"Distance ordering","note":"Availability depends on the chosen operator class and ordering operator.","state":"unknown","value":"Not established"},{"evidence":[{"anchor":"PARALLEL-SCANS","file":"parallel-plans.html","label":"PostgreSQL 18.6 · parallel-plans","quote":"In a parallel index scan or parallel index-only scan , the cooperating processes take turns reading data from the index. Currently, parallel index scans are supported only for btree indexes. Each process will claim a single index block and will scan and return all tuples referenced by that block; other processes can at the same time be returning tuples from a different index block. The results of a parallel btree scan are returned in sorted order within each worker process.","sha256":"62207d207bead82b01b59dc119c4f95856f08655cc11d4699a05a40867ed2070","url":"/docs/18/parallel-plans.html#PARALLEL-SCANS"}],"key":"parallel_scan","label":"Parallel index scan","note":"A cooperating scan of one index is distinct from a parallel bitmap heap scan or separate serial scans under Parallel Append.","state":"no","value":"No"},{"evidence":[{"anchor":"SQL-CREATEINDEX","file":"sql-createindex.html","label":"PostgreSQL 18.6 · sql-createindex","quote":"PostgreSQL can build indexes while leveraging multiple CPUs in order to process the table rows faster. This feature is known as parallel index build . For index methods that support building indexes in parallel (currently, B-tree, GIN, and BRIN), maintenance_work_mem specifies the maximum amount of memory that can be used by each index build operation as a whole, regardless of how many worker processes were started. Generally, a cost model automatically determines how many worker processes should be requested, if any.","sha256":"6aa00da55815d13d0355dd25cb1cdb603fa36964993f164d1b6f486011282580","url":"/docs/18/sql-createindex.html#SQL-CREATEINDEX"}],"key":"parallel_build","label":"Parallel index build","note":"Parallel construction is separate from parallel scans. Worker availability, settings and build phases also matter.","state":"yes","value":"Yes"}],"description":["BRIN indexes (a shorthand for Block Range INdexes) store summaries about the values stored in consecutive physical block ranges of a table. Thus, they are most effective for columns whose values are well-correlated with the physical order of the table rows. Like GiST, SP-GiST and GIN, BRIN can support many different indexing strategies, and the particular operators with which a BRIN index can be used vary depending on the indexing strategy. For data types that have a linear sort order, the indexed data corresponds to the minimum and maximum values of the values in the column for each block range. This supports indexed queries using these operators:"],"description_zh":"brin 索引访问方法。","description_zh_html":"\u003cp\u003ebrin 索引访问方法。\u003c/p\u003e\u003cdl\u003e\u003cdt\u003e有序输出\u003c/dt\u003e\u003cdd\u003e\u003ccode\u003e否\u003c/code\u003e\u003c/dd\u003e\u003cdt\u003e唯一键\u003c/dt\u003e\u003cdd\u003e\u003ccode\u003e否\u003c/code\u003e\u003c/dd\u003e\u003cdt\u003e多键列\u003c/dt\u003e\u003cdd\u003e\u003ccode\u003e是\u003c/code\u003e\u003c/dd\u003e\u003cdt\u003eINCLUDE 列\u003c/dt\u003e\u003cdd\u003e\u003ccode\u003e否\u003c/code\u003e\u003c/dd\u003e\u003cdt\u003e仅索引扫描\u003c/dt\u003e\u003cdd\u003e\u003ccode\u003e否\u003c/code\u003e\u003c/dd\u003e\u003cdt\u003e距离排序\u003c/dt\u003e\u003cdd\u003e\u003ccode\u003e未确定\u003c/code\u003e\u003c/dd\u003e\u003cdt\u003e并行索引扫描\u003c/dt\u003e\u003cdd\u003e\u003ccode\u003e否\u003c/code\u003e\u003c/dd\u003e\u003cdt\u003e并行索引构建\u003c/dt\u003e\u003cdd\u003e\u003ccode\u003e是\u003c/code\u003e\u003c/dd\u003e\u003c/dl\u003e\u003ch3\u003e同版本中文手册节选\u003c/h3\u003e\u003cp\u003e\n   BRIN 索引（Block Range INdexes 的缩写）存储的是关于表中连续物理块范围内所保存值的摘要信息。因此，它最适用于那些列值与表行物理顺序高度相关的列。与 GiST、SP-GiST 和 GIN 一样，BRIN 也可以支持多种不同的索引策略，而 BRIN 索引可使用哪些具体操作符取决于所采用的索引策略。对于具有线性排序顺序的数据类型，每个块范围上被索引的数据对应于该列值的最小值和最大值。这支持使用下列操作符的索引化查询：\n\n\u003c/p\u003e\u003cp\u003e\n\n   标准发布版自带的 BRIN 操作符类记录在\u003ca class=\"xref\" href=\"/zh/docs/18/brin.html#BRIN-BUILTIN-OPCLASSES-TABLE\"\u003e表 65.4\u003c/a\u003e 中。更多信息见\u003ca class=\"xref\" href=\"/zh/docs/18/brin.html\"\u003e第 65.5 节\u003c/a\u003e。\n  \u003c/p\u003e\u003cp\u003e\u003ca href=\"/zh/docs/18/indexes-types.html#INDEXES-TYPES-BRIN\"\u003e查看完整中文手册与上下文\u003c/a\u003e。\u003c/p\u003e","evidence_kind":"documentation","facts":[{"label":"Sorted output","value":"No"},{"label":"Unique keys","value":"No"},{"label":"Multiple key columns","value":"Yes"},{"label":"INCLUDE columns","value":"No"},{"label":"Index-only scans","value":"No"},{"label":"Distance ordering","value":"Not established"},{"label":"Parallel index scan","value":"No"},{"label":"Parallel index build","value":"Yes"}],"facts_zh":[{"label":"有序输出","value":"不支持"},{"label":"唯一键","value":"不支持"},{"label":"多键列","value":"支持"},{"label":"INCLUDE 附加列","value":"不支持"},{"label":"仅索引扫描","value":"不支持"},{"label":"按距离排序","value":"未确定"},{"label":"并行索引扫描","value":"不支持"},{"label":"并行构建索引","value":"支持"}],"related":[{"label":"Table 65.4. Built-in BRIN Operator Classes","url":"/docs/18/brin.html#BRIN-BUILTIN-OPCLASSES-TABLE"},{"label":"65.5. BRIN Indexes","url":"/docs/18/brin.html"},{"label":"pg_am","url":"/wiki/catalog/pg_am/?v=18"},{"label":"pg_opclass","url":"/wiki/catalog/pg_opclass/?v=18"},{"label":"pg_opfamily","url":"/wiki/catalog/pg_opfamily/?v=18"},{"label":"pg_amop","url":"/wiki/catalog/pg_amop/?v=18"},{"label":"pg_amproc","url":"/wiki/catalog/pg_amproc/?v=18"},{"label":"CREATE INDEX","url":"/wiki/sql/create-index/?v=18"},{"label":"Operator classes and families","url":"/docs/18/indexes-opclass.html"},{"label":"Index access method interface","url":"/docs/18/indexam.html"},{"label":"Storage parameters","url":"/wiki/relopts/?v=18"}],"release":{"channel":"stable","evidence_kind":"English manual extraction","label":"18.6","major":"18","manifest":{"major":"18","release":"18.6","source_mode":"en SGML built with pinned official archive","source_sha256":"555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f","source_url":"https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2"},"ref":"PostgreSQL 18.6 Documentation","revision":"0e39ebd4fddbd990280e62f4503f0bd18765bbd990dccf4cba976b5d47da45e7"},"runtime_verified":false,"sections":[{"blocks":[{"paragraphs":["BRIN indexes (a shorthand for Block Range INdexes) store summaries about the values stored in consecutive physical block ranges of a table. Thus, they are most effective for columns whose values are well-correlated with the physical order of the table rows. Like GiST, SP-GiST and GIN, BRIN can support many different indexing strategies, and the particular operators with which a BRIN index can be used vary depending on the indexing strategy. For data types that have a linear sort order, the indexed data corresponds to the minimum and maximum values of the values in the column for each block range. This supports indexed queries using these operators:"]},{"code":"\u003c   \u003c=   =   \u003e=   \u003e","paragraphs":[]},{"paragraphs":["The BRIN operator classes included in the standard distribution are documented in Table 65.4 . For more information see Section 65.5 ."]}],"title":"Queries, operators and limitations"}],"sections_zh":[{"blocks":[{"paragraphs":["BRIN 索引（Block Range INdexes 的缩写）存储的是关于表中连续物理块范围内所保存值的摘要信息。因此，它最适用于那些列值与表行物理顺序高度相关的列。与 GiST、SP-GiST 和 GIN 一样，BRIN 也可以支持多种不同的索引策略，而 BRIN 索引可使用哪些具体操作符取决于所采用的索引策略。对于具有线性排序顺序的数据类型，每个块范围上被索引的数据对应于该列值的最小值和最大值。这支持使用下列操作符的索引化查询："]},{"code":"\u003c   \u003c=   =   \u003e=   \u003e","paragraphs":[]},{"paragraphs":["标准发布版自带的 BRIN 操作符类记录在 表 65.4 中。更多信息见 第 65.5 节 。"]}],"title":"查询、操作符与限制"}],"signature":"CREATE INDEX name ON table_name USING brin (column_name);","sources":[{"anchor":"INDEXES-TYPES-BRIN","file":"indexes-types.html","label":"PostgreSQL 18.6: BRIN","sha256":"cee340145a2ef5fbd807f66755b10d22bb049e328c460f572f45ad6193e7e4a1","url":"/docs/18/indexes-types.html#INDEXES-TYPES-BRIN"},{"anchor":"","file":"catalog-pg-am.html","label":"PostgreSQL 18.6 · catalog-pg-am","sha256":"579364179365a51945e2edb6481df5d198916c2c725e506f166824dedf08994c","url":"/docs/18/catalog-pg-am.html"},{"anchor":"","file":"hash-index.html","label":"PostgreSQL 18.6 · hash-index","sha256":"b994550220e1ee05648d09804c9eb2302834e07e261932420a96605d7c9c6140","url":"/docs/18/hash-index.html"},{"anchor":"","file":"indexam.html","label":"PostgreSQL 18.6 · indexam","sha256":"0a38f7c0ac0541f31e086c83a624e782c15367456578a6dd3329882516bc1080","url":"/docs/18/indexam.html"},{"anchor":"","file":"indexes-index-only-scans.html","label":"PostgreSQL 18.6 · indexes-index-only-scans","sha256":"2322ec12b82f3fd01ee4072049caaa5a0190148ac68d98c0fcd6eda958828a83","url":"/docs/18/indexes-index-only-scans.html"},{"anchor":"","file":"indexes-multicolumn.html","label":"PostgreSQL 18.6 · indexes-multicolumn","sha256":"c0a799ec49b8ef057a63d465fb1d72a3b81e16d652c28a71734d45592d081202","url":"/docs/18/indexes-multicolumn.html"},{"anchor":"","file":"indexes-opclass.html","label":"PostgreSQL 18.6 · indexes-opclass","sha256":"07de06abf3a2aff2a891a2789def434d9b76705e54d45ca5338dc13451ae2962","url":"/docs/18/indexes-opclass.html"},{"anchor":"","file":"indexes-ordering.html","label":"PostgreSQL 18.6 · indexes-ordering","sha256":"85fac99c7c66ed19dd021f12b5cc53ce18aa5bfa4b56c8c168317f99b8f12d3b","url":"/docs/18/indexes-ordering.html"},{"anchor":"","file":"indexes-unique.html","label":"PostgreSQL 18.6 · indexes-unique","sha256":"7c3eac7fa180b22534ff01df0c68155f15b6b360ffe35507c5266059116840db","url":"/docs/18/indexes-unique.html"},{"anchor":"","file":"parallel-plans.html","label":"PostgreSQL 18.6 · parallel-plans","sha256":"62207d207bead82b01b59dc119c4f95856f08655cc11d4699a05a40867ed2070","url":"/docs/18/parallel-plans.html"},{"anchor":"","file":"sql-createindex.html","label":"PostgreSQL 18.6 · sql-createindex","sha256":"6aa00da55815d13d0355dd25cb1cdb603fa36964993f164d1b6f486011282580","url":"/docs/18/sql-createindex.html"}],"storage_options":[{"description":["Defines the number of table blocks that make up one block range for each entry of a BRIN index (see Section 65.5.1 for more details). The default is 128 ."],"name":"pages_per_range","source":{"anchor":"INDEX-RELOPTION-PAGES-PER-RANGE","file":"sql-createindex.html","label":"PostgreSQL 18.6 · sql-createindex","sha256":"6aa00da55815d13d0355dd25cb1cdb603fa36964993f164d1b6f486011282580","url":"/docs/18/sql-createindex.html#INDEX-RELOPTION-PAGES-PER-RANGE"},"url":"/wiki/relopts/brin-pages-per-range/?v=18"},{"description":["Defines whether a summarization run is queued for the previous page range whenever an insertion is detected on the next one (see Section 65.5.1.1 for more details). The default is off ."],"name":"autosummarize","source":{"anchor":"INDEX-RELOPTION-AUTOSUMMARIZE","file":"sql-createindex.html","label":"PostgreSQL 18.6 · sql-createindex","sha256":"6aa00da55815d13d0355dd25cb1cdb603fa36964993f164d1b6f486011282580","url":"/docs/18/sql-createindex.html#INDEX-RELOPTION-AUTOSUMMARIZE"},"url":"/wiki/relopts/brin-autosummarize/?v=18"}],"tables_zh":[],"zh_from":{"authored_translation":"source-derived-structured-summary","body_sha256":"0021b6ccfe3c04e7ca6e031e92df5026b90d6e097571b0e59c62983fd22d8a25","kind":"same-version-chinese-manual-with-source-derived-structured-summary","manual":{"anchor":"INDEXES-TYPES-BRIN","build_id":107,"extraction":"concept-introduction","fragment_sha256":"8521bff1238765fb1af1f3bdbaf18255eda3b6ce63b25f6538195a4a97e0dd97","locale":"zh-Hans","page_key":"indexes-types.html","source_hash":"88d19a31beb78d185e353fcc53ddc8d44f9f2f55b5627361a271bbbb2d20cf80","source_revision":"unknown:rendered-translation-baseline","translated_from_revision":null,"translation_revision":"git:b1b500221dbe5437cfca004d6b04d3f6e422765d;html-sha256:08e987a66af27b98444a8057c256314eafa13611a3fb9e888214fc436824244b","url":"/zh/docs/18/indexes-types.html#INDEXES-TYPES-BRIN","version":"18"},"runtime_rerun":false,"source_facts_revision":"0e39ebd4fddbd990280e62f4503f0bd18765bbd990dccf4cba976b5d47da45e7"}},"ManualEvidence":{"release":{"channel":"stable","evidence_kind":"English manual extraction","label":"18.6","major":"18","manifest":{"major":"18","release":"18.6","source_mode":"en SGML built with pinned official archive","source_sha256":"555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f","source_url":"https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2"},"ref":"PostgreSQL 18.6 Documentation","revision":"0e39ebd4fddbd990280e62f4503f0bd18765bbd990dccf4cba976b5d47da45e7"},"sources":[{"anchor":"INDEXES-TYPES-BRIN","file":"indexes-types.html","label":"PostgreSQL 18.6: BRIN","sha256":"cee340145a2ef5fbd807f66755b10d22bb049e328c460f572f45ad6193e7e4a1","url":"/docs/18/indexes-types.html#INDEXES-TYPES-BRIN"},{"anchor":"","file":"catalog-pg-am.html","label":"PostgreSQL 18.6 · catalog-pg-am","sha256":"579364179365a51945e2edb6481df5d198916c2c725e506f166824dedf08994c","url":"/docs/18/catalog-pg-am.html"},{"anchor":"","file":"hash-index.html","label":"PostgreSQL 18.6 · hash-index","sha256":"b994550220e1ee05648d09804c9eb2302834e07e261932420a96605d7c9c6140","url":"/docs/18/hash-index.html"},{"anchor":"","file":"indexam.html","label":"PostgreSQL 18.6 · indexam","sha256":"0a38f7c0ac0541f31e086c83a624e782c15367456578a6dd3329882516bc1080","url":"/docs/18/indexam.html"},{"anchor":"","file":"indexes-index-only-scans.html","label":"PostgreSQL 18.6 · indexes-index-only-scans","sha256":"2322ec12b82f3fd01ee4072049caaa5a0190148ac68d98c0fcd6eda958828a83","url":"/docs/18/indexes-index-only-scans.html"},{"anchor":"","file":"indexes-multicolumn.html","label":"PostgreSQL 18.6 · indexes-multicolumn","sha256":"c0a799ec49b8ef057a63d465fb1d72a3b81e16d652c28a71734d45592d081202","url":"/docs/18/indexes-multicolumn.html"},{"anchor":"","file":"indexes-opclass.html","label":"PostgreSQL 18.6 · indexes-opclass","sha256":"07de06abf3a2aff2a891a2789def434d9b76705e54d45ca5338dc13451ae2962","url":"/docs/18/indexes-opclass.html"},{"anchor":"","file":"indexes-ordering.html","label":"PostgreSQL 18.6 · indexes-ordering","sha256":"85fac99c7c66ed19dd021f12b5cc53ce18aa5bfa4b56c8c168317f99b8f12d3b","url":"/docs/18/indexes-ordering.html"},{"anchor":"","file":"indexes-unique.html","label":"PostgreSQL 18.6 · indexes-unique","sha256":"7c3eac7fa180b22534ff01df0c68155f15b6b360ffe35507c5266059116840db","url":"/docs/18/indexes-unique.html"},{"anchor":"","file":"parallel-plans.html","label":"PostgreSQL 18.6 · parallel-plans","sha256":"62207d207bead82b01b59dc119c4f95856f08655cc11d4699a05a40867ed2070","url":"/docs/18/parallel-plans.html"},{"anchor":"","file":"sql-createindex.html","label":"PostgreSQL 18.6 · sql-createindex","sha256":"6aa00da55815d13d0355dd25cb1cdb603fa36964993f164d1b6f486011282580","url":"/docs/18/sql-createindex.html"}]},"MeasuredEvidence":{"runtime_verified":false}},"Text":{"Collection":"indexam","Key":"brin","SourceDatabase":"center","Version":"18","Locale":"en","Title":"BRIN","Summary":"BRIN indexes (a shorthand for Block Range INdexes) store summaries about the values stored in consecutive physical block ranges of a table. Thus, they are most effective for columns whose values are well-correlated with the physical order of the table rows. Like GiST, SP-GiST and GIN, BRIN can support many different indexing strategies, and the particular operators with which a BRIN index can be used vary depending on the indexing strategy. For data types that have a linear sort order, the indexed data corresponds to the minimum and maximum values of the values in the column for each block range. This supports indexed queries using these operators:","BodyHTML":"\u003cp\u003eBRIN indexes (a shorthand for Block Range INdexes) store summaries about the values stored in consecutive physical block ranges of a table. Thus, they are most effective for columns whose values are well-correlated with the physical order of the table rows. Like GiST, SP-GiST and GIN, BRIN can support many different indexing strategies, and the particular operators with which a BRIN index can be used vary depending on the indexing strategy. For data types that have a linear sort order, the indexed data corresponds to the minimum and maximum values of the values in the column for each block range. This supports indexed queries using these operators:\u003c/p\u003e","SourceRevision":"0e39ebd4fddbd990280e62f4503f0bd18765bbd990dccf4cba976b5d47da45e7","ContentHash":"2ad5b533bd4c931eec1a4ef334cf1accb0502c4d431ef2b881b4d08959f2580a","Payload":{"description":["BRIN indexes (a shorthand for Block Range INdexes) store summaries about the values stored in consecutive physical block ranges of a table. Thus, they are most effective for columns whose values are well-correlated with the physical order of the table rows. Like GiST, SP-GiST and GIN, BRIN can support many different indexing strategies, and the particular operators with which a BRIN index can be used vary depending on the indexing strategy. For data types that have a linear sort order, the indexed data corresponds to the minimum and maximum values of the values in the column for each block range. This supports indexed queries using these operators:"],"related":[{"label":"Table 65.4. Built-in BRIN Operator Classes","url":"/docs/18/brin.html#BRIN-BUILTIN-OPCLASSES-TABLE"},{"label":"65.5. BRIN Indexes","url":"/docs/18/brin.html"},{"label":"pg_am","url":"/wiki/catalog/pg_am/?v=18"},{"label":"pg_opclass","url":"/wiki/catalog/pg_opclass/?v=18"},{"label":"pg_opfamily","url":"/wiki/catalog/pg_opfamily/?v=18"},{"label":"pg_amop","url":"/wiki/catalog/pg_amop/?v=18"},{"label":"pg_amproc","url":"/wiki/catalog/pg_amproc/?v=18"},{"label":"CREATE INDEX","url":"/wiki/sql/create-index/?v=18"},{"label":"Operator classes and families","url":"/docs/18/indexes-opclass.html"},{"label":"Index access method interface","url":"/docs/18/indexam.html"},{"label":"Storage parameters","url":"/wiki/relopts/?v=18"}],"sections":[{"blocks":[{"paragraphs":["BRIN indexes (a shorthand for Block Range INdexes) store summaries about the values stored in consecutive physical block ranges of a table. Thus, they are most effective for columns whose values are well-correlated with the physical order of the table rows. Like GiST, SP-GiST and GIN, BRIN can support many different indexing strategies, and the particular operators with which a BRIN index can be used vary depending on the indexing strategy. For data types that have a linear sort order, the indexed data corresponds to the minimum and maximum values of the values in the column for each block range. This supports indexed queries using these operators:"]},{"code":"\u003c   \u003c=   =   \u003e=   \u003e","paragraphs":[]},{"paragraphs":["The BRIN operator classes included in the standard distribution are documented in Table 65.4 . For more information see Section 65.5 ."]}],"title":"Queries, operators and limitations"}]}},"RequestedLocale":"en","Fallback":false,"Versions":["10","11","12","13","14","15","16","17","18","19","20","9.5","9.6"],"Locales":["en","zh-Hans"],"Signatures":null,"Spellings":null,"SQLState":null,"Evidence":null}
