Skip to main content
`Ctrl`+`K`

# 9. Limitations

Groonga has some limitations.

## 9.1. Limitations of table

A table has the following limitations.

- The maximum one key size: 4KiB

- The maximum total size of keys:

  - 4GiB by default.

  - 1TiB by specifying `KEY_LARGE` flag to flags. `KEY_LARGE` can be used with TABLE_HASH_KEY or TABLE_PAT_KEY. However, `KEY_LARGE` with `TABLE_PAT_KEY` supports version 15.1.5 or later.

- The maximum number of records:

  - TABLE_NO_KEY: 1,073,741,815 (2 30 - 9)

  - TABLE_HASH_KEY: 536,870,912 (2 29)

  - TABLE_PAT_KEY: 1,073,741,823 (2 30 - 1)

  - TABLE_DAT_KEY: 268,435,455 (2 28 - 1)

Keep in mind that these limitations may vary depending on conditions.

For example, you need to use small size type for key to store many records. Because the maximum total size of keys limitation is exceeded before the maximum number of records limitation is exceeded. If you use `UInt64` (8byte) type and store 2 29 records, total key size is 4GiB (= 8 * (2 29)). You can’t add more records. You need to choose decreasing key size (e.g. `UInt32`) or using `KEY_LARGE` and TABLE_HASH_KEY to store more records.

## 9.2. Limitations of indexing

A full-text index has the following limitations.

- The maximum number of distinct terms: 268,435,455 (more than 268 million)

- The maximum index size: 256GiB

Keep in mind that these limitations may vary depending on conditions.

## 9.3. Limitations of column

A column has the following limitation.

- The maximum stored data size of a column: 256GiB