-
Notifications
You must be signed in to change notification settings - Fork 679
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
yikeke
committed
Jul 10, 2020
1 parent
e7bf6e2
commit 175c6cf
Showing
5 changed files
with
27 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
--- | ||
title: SHARD_ROW_ID_BITS | ||
summary: Learn the SHARD_ROW_ID_BITS attribute. | ||
--- | ||
|
||
# SHARD_ROW_ID_BITS | ||
|
||
This document introduces the `SHARD_ROW_ID_BITS` table attribute, which is used to set the number of bits of the implicit sharded `_tidb_rowid`. | ||
|
||
## Concept | ||
|
||
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. But setting an overlarge value might lead to an excessively large number of RPC requests, which increases the CPU and network overheads. | ||
|
||
- `SHARD_ROW_ID_BITS = 4` indicates 16 shards | ||
- `SHARD_ROW_ID_BITS = 6` indicates 64 shards | ||
- `SHARD_ROW_ID_BITS = 0` indicates the default 1 shard | ||
|
||
## Examples | ||
|
||
- `CREATE TABLE`: `CREATE TABLE t (c int) SHARD_ROW_ID_BITS = 4;` | ||
- `ALTER TABLE`: `ALTER TABLE t SHARD_ROW_ID_BITS = 4;` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters