--- title: "Limits of VAST Vector Search" slug: "dev-vector-search-reference-limits" updated: 2026-10-30T18:19:01Z published: 2026-10-30T18:19:01Z canonical: "docs.vastdata.com/dev-vector-search-reference-limits" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.vastdata.com/llms.txt > Use this file to discover all available pages before exploring further. # Limits of VAST Vector Search *Applies to VAST Cluster 5.5.* This page lists the limits and rules for vector-indexed tables in VAST Cluster 5.5. Most of them are fixed when you create the table, so check them before you design one. For which table structures can be combined (sorting, partitioning, projections, user-defined row IDs, replication), see the VAST DataBase [limits](/develop/docs/dev-database-reference-limits#combining-table-structures) page. ## Index rules | Limit | Value or rule | | --- | --- | | Indexed vector columns per table | 1 | | When you can create the index | Only when you create the table. You can't add an index to an existing table: the VMS REST API's `PATCH /tables/add_columns/` accepts a `vector_indexes` entry on a table without an index and returns HTTP 204, but creates no index ([CI/CD and automation](/develop/docs/dev-vector-search-operations-ci-cd#you-cant-add-an-index-to-an-existing-table)). | | Drop the index | Not possible. The index lasts as long as the table; drop the table to remove it. | | Change the metric (distance function) | Not possible | | Change the quantization | Not possible. SQL `ALTER TABLE ... ALTER COLUMN` on the indexed column fails with `This functionality is not implemented yet`, and a VMS REST `PATCH /tables/` with new quantization values returns HTTP 204 but changes nothing. | | Distance metrics | `l2sq` (Euclidean), `cosine`, `ip` (inner product) | | Quantization | `none`, `scalar_8bit`. `scalar_8bit` for clustering with `none` for search isn't allowed; see [quantization](/develop/docs/dev-vector-search-guides-quantization). | | Element types for an index | `FLOAT` (fp32) and `FLOAT16` (fp16, alias `HALF`). An index on a `VECTOR(INTEGER, <d>)` column is accepted at `CREATE TABLE`, but rows can't then be inserted through SQL. | | Dimension | Fixed per column. The maximum for an indexed column depends on the cluster quantization: 2,147 with `scalar_8bit`, 536 with `none`, for `FLOAT` and `FLOAT16` alike. The search quantization doesn't change it. A larger dimension fails at `CREATE TABLE` ([errors](/develop/docs/dev-vector-search-troubleshooting-errors#creating-a-table)). The limit comes from the memory the CNodes set aside for clustering, so if you need more dimensions, ask your platform team: they can change the CNode configuration to free more memory. A vector column without an index can be larger. | | Column name | Don't call the vector column `vector`: it's a reserved word in the VAST Query Engine. | ## Table rules | Limit | Value or rule | | --- | --- | | Add or drop columns | Not supported on a vector-indexed table | | Rename the indexed vector column | Not supported | | Update the vector column | Not supported. Delete the row and insert it again. | | Sorted table with a vector index | Not supported | | Partitioned table with a vector index | Not supported | | Replication | A vector-indexed table can't be replicated, and you can't create one in a replicated path. See [VAST DataBase limits](/develop/docs/dev-database-reference-limits#combining-table-structures). | | User-defined row IDs | Not supported with a vector index. See [VAST DataBase limits](/develop/docs/dev-database-reference-limits#combining-table-structures). A `vastdb_rowid` column with a vector index fails with `failed to enable vector index eres=14`, and the table is created anyway, without an index. | ## Search rules | Limit | Value or rule | | --- | --- | | Query shape | `ORDER BY <distance> LIMIT k`, ascending, with one sort key and no `OFFSET`. Other shapes run, but as a full scan: `EXPLAIN` shows a `VAST_VEC_INDEX_SCAN` step only for a search that uses the index. See [query design](/develop/docs/dev-vector-search-guides-query-design). | | `LIMIT` | Required: `ORDER BY` a distance without `LIMIT` fails with `The operator 'ORDER_BY' type=1 is currently not supported for this usage.` There's no default *k*, and no documented cap: searches with `LIMIT` up to 1,000,000 return exactly that many rows, and so does `vector_search(limit=100000)`. | | SQL statement size | 5 MB, as for any Query Engine statement. See [VAST DataBase limits](/develop/docs/dev-database-reference-limits#sizes). | | Query plan size | A statement with many vector literals, such as a multi-row `INSERT ... VALUES`, can fail with `Logical plan is too big: <size> > 4194304` well before it reaches 5 MB. Load embeddings with bulk ingest ([ingest](/develop/docs/dev-vector-search-guides-ingest)). | | Fresh inserts | Searchable straight away. Until background clustering takes them into the index, the search reads them directly. | | Trino, Spark and Dremio | The VAST connectors for Trino, Spark and Dremio don't support vector index-based search. Trino and Spark have no type for a `VECTOR` column (see [supported data types](/docs-5-5/docs/supported-data-types)). Search through the VAST Query Engine. | ## See also - [SQL reference](/develop/docs/dev-vector-search-reference-sql) - [Release notes](/develop/docs/dev-vector-search-release-notes) - VAST DataBase [limits](/develop/docs/dev-database-reference-limits) - [Performance and sizing](/develop/docs/dev-vector-search-operations-performance)