Limitations
For TREE or HASH indexes, the maximum
is 255 (box.schema.INDEX_PART_MAX
). For RTREE indexes, the
maximum is 1 but the field is an ARRAY of up to 20 dimensions.
For BITSET indexes, the maximum is 1.
The theoretical maximum is 2,147,483,647 (box.schema.FIELD_MAX
). The
practical maximum is whatever is specified by the space’s
field_count
member, or the maximal tuple length.
The maximal number of bytes in a tuple is roughly equal to
memtx.max_tuple_size or
vinyl.max_tuple_size
(with a metadata
overhead of about 20 bytes per tuple, which is added on top of useful bytes).
By default, the value of either memtx.max_tuple_size
or
vinyl.max_tuple_size
is 1,048,576.
If a field in a tuple can contain a million bytes, then the index key can contain a million bytes, so the maximum is determined by factors such as Number of bytes in a tuple, not by the index support.
In a Tarantool space that has multikey indexes, any tuple cannot contain more than ~8,000 elements in a field indexed with that multikey index. This is because every element has 4 bytes of metadata, and the tuple’s metadata, which includes multikey metadata, cannot exceed 2^16 bytes.
The theoretical maximum is 2,147,483,646 (box.schema.SPACE_MAX
)
but the practical maximum is around 65,000.
The practical limit is the number of file descriptors that one can set with the operating system.
The total maximum size for all spaces is in effect set by memtx.memory, which in turn is limited by the total available memory.
The maximum number of operations per tuple that can be in a single update
is 4,000 (BOX_UPDATE_OP_CNT_MAX
).