This document introduces the
SHARD_ROW_ID_BITS table attribute, which is used to set the number of bits of the shards after the implicit
_tidb_rowid is sharded.
For the tables with a non-integer primary key or no primary key, TiDB uses an implicit auto-increment row ID. When a large number of
INSERT operations are performed, the data is written into a single Region, causing a write hot spot.
To mitigate the hot spot issue, you can configure
SHARD_ROW_ID_BITS. The row IDs are scattered and the data are written into multiple different Regions.
SHARD_ROW_ID_BITS = 4indicates 16 shards
SHARD_ROW_ID_BITS = 6indicates 64 shards
SHARD_ROW_ID_BITS = 0indicates the default 1 shard
CREATE TABLE t (c int) SHARD_ROW_ID_BITS = 4;
ALTER TABLE t SHARD_ROW_ID_BITS = 4;