Glossary
84 terms, in the sense this mechanism uses them. The platform glossary has every term across all mechanisms.
/
- ANN (approximate nearest neighbor)
- Search that returns neighbours that are probably, not certainly, the closest.
- Bitmap heap scan
- PostgreSQL plan step that builds a temporary bitmap from index scans and visits table pages in physical order.
- Bitmap index
- For each distinct value, a bit vector with one bit per row; predicates become boolean operations on words.
- Block-max WAND / WAND
- Algorithms that skip scoring documents that cannot reach the current top-k, using score upper bounds.
- BRIN
- PostgreSQL's block-range index: a tiny min/max summary per range of pages.
- Buffer pool
- The database's own RAM area holding copies of disk pages, with dirty and pinned frames.A database stores tables in files, cut into fixed-size pages (typically 8 KB; do not confuse them with 4 KB virtual-memory pages). A buffer pool is the database's own area of RAM that holds copies of such pages. Each slot in the pool is a frame. A hit means the page is already in a frame. A miss means it must be read from disk. The hit rate is hits ÷ accesses. A page changed in memory but not yet written to disk is dirty. The working set is the set of pages the workload keeps coming back to.
- Bε-tree (fractal tree)
- A B-tree whose nodes reserve space for buffered updates; a continuum between B-tree and LSM.
- Cardinality
- The number of distinct values a label can take. The series count is the product over all labels.2 other meanings →The number of distinct things in a set. "20 million files" is a statement about cardinality. Metadata size follows cardinality (how many objects), not bytes.
- Cardinality estimation
- The planner's guess of how many rows a predicate or operation returns.
- Clustered index / index-organized table
- A table stored inside a B-tree sorted by the key, so rows and index are one structure.
- Clustered storage
- In a heap table, rows are stored in any order, wherever there is space. In a clustered (or index-organized) table, the rows are stored inside a B-tree sorted by the primary key, so the table is an index.
- Collation
- The rules for comparing and sorting text; different rules give different orders.
- Composite index
- An index on a tuple of several columns, ordered lexicographically.
- Correlation (statistic)
- A measure of how closely a column's values follow the physical row order.
- Covering index
- An index containing every column a query needs, allowing an index-only scan.
- Cracking
- Building an index gradually as a side effect of running queries.
- Curse of dimensionality
- In high dimensions, distances concentrate and "nearest" loses meaning, so pruning fails.
- Dead index entry / index bloat
- Entries pointing at no-longer-visible row versions; an index larger than its live content needs.
- Derived data
- Data computed from other data and kept in step with it. An index is derived from the table. Derived data can disagree with its source; keeping it true is the main running cost of an index.
- Derived state
- Data computed from other data and kept in step with it (an index is derived from its table).
- Early binding / late binding
- Index entry refers to a physical address (early) or to a logical key (late).
EXPLAIN- The SQL command that shows the plan the query planner chose (which scans, indexes and joins, and its row estimates) without, or with ANALYZE alongside, running the query.The query planner decides how to run a query: scan the whole table, or use an index, and which one. It guesses how many rows each step returns using statistics about the data.
EXPLAINshows the chosen plan. An index that exists but is not chosen costs you everything and buys you nothing. - Expression index
- An index on a computed value such as
lower(email). - Extended statistics
- Statistics on column groups, built to capture correlation.
- Fanout
- Number of children per tree page: page size ÷ entry size.
- Generated column
- A column whose value the database computes from other columns and stores.
- Geohash / S2 / H3
- Discrete global grids that map a location to a hierarchical cell id.
- Global secondary index
- An index partitioned by the indexed column itself, so one lookup goes to one partition.
- Hash index
- An index that answers equality only, by hashing the key.
- Heap
- In a heap table, rows are stored in any order, wherever there is space. In a clustered (or index-organized) table, the rows are stored inside a B-tree sorted by the primary key, so the table is an index.2 other meanings →
- Heap table
- A table whose rows are stored in no particular order.
- Hilbert curve / Z-order (Morton)
- Space-filling curves that map multi-dimensional points to one dimension.
- HNSW
- A layered neighbour graph that finds nearest neighbours by greedy navigation.
- HOT update
- A PostgreSQL optimization that keeps a new row version on the same page and skips index updates.
- INCLUDE column
- A payload column stored only in index leaf pages, not part of the key.
- Index-only scan
- A query answered from the index alone without fetching table rows.
- Interesting order
- An ordering supplied by an index that lets the plan skip a sort.
- Inverted index
- A map from each term to the list of documents that contain it.
- IVF (inverted file)
- An index that partitions vectors into cells by centroid and probes only a few cells.
- Learned index
- An index that replaces a search structure with a model of the data distribution.
- Leftmost prefix
- The rule that a composite index serves predicates on a leading prefix of its columns.
- Lexicographic order
- Dictionary-style ordering of tuples: compare first column, then second, and so on.
- Local secondary index
- An index kept separately inside each partition, covering only that partition's rows.
- Memory cliff
- The step increase in cost when an index or working set no longer fits in memory.
- MVCC
- Keeping old versions so readers do not block writers and writers do not block readers.A technique where an update does not overwrite a row but creates a new version, so that readers who started earlier can still see the old one. Each reader works on a consistent snapshot. Old versions are removed later by a cleanup job (called vacuum in Postgres).
- Nested loop join
- Join that looks up matches for each row of one input; good for few rows, bad for millions.
- nlist / nprobe
- IVF parameters: number of clusters, and number of clusters searched per query.
- Order-preserving encoding
- Turning typed values into bytes so that byte order equals logical order.
- Page
- The fixed-size unit (commonly 4-16 KiB) read and written by storage and databases.3 other meanings →Storage hardware and databases do not read single bytes. They read fixed-size chunks called pages (or blocks), typically 4 KiB to 16 KiB on a local disk. To read one 200-byte row you must read its whole page.
- Partial index
- An index containing entries only for rows matching a predicate.
- Partition
- A set of files proven to share a value; the claim that allows pruning.3 other meanings →A table in a data lake is really a set of files. A partition is a group of files that share a value, for example all files for
date = 2025-03-01. Systems often store each partition in its own folder:orders/date=2025-03-01/part-0001.parquet. - Planner (optimizer)
- The component that chooses how a query is executed.The query planner decides how to run a query: scan the whole table, or use an index, and which one. It guesses how many rows each step returns using statistics about the data.
EXPLAINshows the chosen plan. An index that exists but is not chosen costs you everything and buys you nothing. - Posting list
- The sorted list of document ids for one term in an inverted index.
- Primary key
- A unique, non-null identifier for each row.Rules a database can enforce. A primary key says each row has a unique, non-null identifier. A unique constraint says no two rows share a value. A foreign key says a value must exist in another table (for example every
orders.customer_idmust exist incustomers). A check constraint says a row must satisfy a predicate. - Product quantization (PQ)
- Compressing vectors by replacing sub-vectors with codebook indexes.
- Pruning
- Skipping whole partitions or files using metadata.A columnar file format (such as Parquet) stores each column of a table separately, so a query that needs 5 of 200 columns can read only those 5. Partitioning splits a table into folders (for example, one per day). Pruning (or skipping) means not reading the parts a query cannot need. Selectivity is the fraction of data a query actually needs.
- Quadtree
- Spatial tree that splits each square into four equal squares.
- R-tree
- Spatial tree of nested, possibly overlapping bounding boxes.
- Random I/O
- Reading or writing blocks scattered across storage rather than next to each other. Each access pays a fixed setup cost (a seek, a flash read, a network round trip), so it costs far more per byte than sequential I/O.Reading pages that sit next to each other is sequential and cheap per page. Reading pages scattered around is random and costs more per page, because each read pays a fixed setup cost (a disk seek, a flash read, a network round trip). The ratio of the two costs is the key number of Part 1. Call the cost of one sequential page read s and one random page read r.
- Recall
- Of the real defects, the fraction that were caught.Of the results returned, precision is the fraction that is correct. Of all the correct answers that exist, recall is the fraction you returned. If 10 items are truly relevant and you return 8 of them among 20 results, recall = 8/10 = 80% and precision = 8/20 = 40%.
- Roaring bitmap
- A bitmap index that stores each 65,536-row chunk as an array, a bitmap or runs, whichever is smallest.
- Row
- A table has rows (one record each, such as one scan event) and columns (one attribute each, such as
weight_g). A table withncolumns hasnvalues in each row. - Run
- A stretch of neighboring index entries readable in one sequential pass.1 other meaning →
- s/r ratio
- Cost of sequential access divided by cost of random access; sets the index crossover.
- Scatter-gather
- Fanning a request out to N shards and waiting for their answers.To query a dataset split over many machines (shards), a coordinator sends the query to the shards (scatter) and merges the answers (gather). The query is finished only when the slowest shard answers, so the latency of the whole is the maximum over shards. Slow outliers (the "tail", measured by percentiles such as p99, the time that 99% of requests beat) therefore hurt more as you add shards.
- Secondary index
- Any index other than the primary key's.The primary key (PK) uniquely identifies a row. A secondary index is any additional index on other columns.
- Selectivity
- Fraction of rows that pass a condition.The cardinality of an operator is the number of rows it produces. The selectivity of a condition is the fraction of rows that pass it. Example: a table has 1,000,000 rows and
city = 'Pune'matches 20,000 of them. The selectivity is 20,000 / 1,000,000 = 0.02 (2%), and the cardinality of the filter output is 20,000. - Sequential
- Reading or writing one place after another, like appending to a file. It avoids the per-access cost of jumping around, so it is far cheaper than random I/O, especially on spinning disks.Sequential means writing one place after another (like appending to a file). Random means jumping between different places. On a hard disk, each jump costs a mechanical move of about 5–10 ms. On flash, random writes are also more costly. Sequential is much cheaper.
- Shard
- A partition is a slice of a table, split by some key (for example by date). A shard is a partition placed on a different machine.1 other meaning →
- Skew
- A task or partition much bigger than its peers.2 other meanings →A column is skewed when some values are far more common than others. In a Zipf distribution, the most common value is about twice as common as the second, three times as common as the third, and so on. Web data, names, products and customers are often Zipf-like. A key is hot when it has far more rows than average.
- Skip list
- A sorted linked list with random-height express pointers; lock-free inserts need no rebalancing.
- Skip pointer
- Entry in a posting list that lets a search jump ahead over many postings.
- Skip scan
- Technique that enumerates distinct values of a leading column to use a composite index without a predicate on it.
- Sparse index
- An index with one entry per group of rows (granule) instead of per row.
- Stopword
- A very common word whose posting list covers most documents.
- Table
- Rows of records with named columns. Keys identify rows, and foreign keys link a row to a row in another table.A table has rows (one record each) and columns (one named field each). A primary key is a column (or set of columns) that identifies one row. A foreign key (FK) is a column that holds the primary key of a row in another table. A join matches rows of two tables by key. Example:
order_lines.product_idis a foreign key toproducts.product_id. - TID
- PostgreSQL tuple identifier (block, offset): a physical row address.
- Tombstone
- A marker record that says a key was deleted; must outlive every older copy.
- Top-k early termination
- Stopping a search once no remaining candidate can enter the top k.
- UUIDv4 / UUIDv7 / ULID
- Random identifiers (v4) versus time-ordered identifiers (v7, ULID).
- Visibility map
- PostgreSQL's per-page record of "all versions visible", used by index-only scans.
- Write amplification
- Bytes written per byte of user data.If you write 1 MB of data and the system physically writes 10 MB (because of rewriting and merging), the write amplification is 10.
- Zipf distribution
- A distribution where the r-th most common value has frequency about 1/r of the top one.In many workloads a few items are requested very often and most items are requested rarely. Zipf's law says the item of popularity rank i (rank 1 is the most popular) is requested with frequency proportional to i^(−α). The number α (alpha) is the popularity exponent. A larger α means a steeper concentration on the top items.
- Zone map
- Per-file min and max values of a column, used to skip files.A zone map stores the minimum and maximum of a column for each block of rows. If your range does not overlap a block's min/max, you skip the block without reading it. Partition pruning is the same idea at table level: a table is split into partitions by a key (for example by date), and the engine skips partitions that cannot match. Both rely on values being comparable, so that "min" and "max" mean something.