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 only with TABLE_HASH_KEY.
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