📣
TiDB Cloud Premium はパブリックプレビュー中です。エンタープライズワークロード向けの無制限のスケーリング、即時の弾力性、高度なセキュリティを提供します。このページは自動翻訳されたものです。原文はこちらからご覧ください。

SHARD_ROW_ID_BITS



このドキュメントでは、暗黙的に_tidb_rowidシャーディングされた後にシャードのビット数を設定するために使用されるSHARD_ROW_ID_BITSテーブル属性を紹介します。

コンセプト

クラスター化されていない主キーまたは主キーのないテーブルの場合、TiDB は自動的に生成された_tidb_rowidを暗黙のAUTO_INCREMENT行IDとして使用します。多数のINSERT操作が実行されると、データは単一のリージョンに書き込まれるため、書き込みホットスポットが発生します。

ホットスポットの問題を軽減するには、 SHARD_ROW_ID_BITS設定できます。行 ID は分散しており、データは複数の異なるリージョンに書き込まれます。

  • SHARD_ROW_ID_BITS = 4 16個のシャードを示します
  • SHARD_ROW_ID_BITS = 6 64個のシャードを示します
  • SHARD_ROW_ID_BITS = 0デフォルトの1シャードを示します

SHARD_ROW_ID_BITS = S設定すると、 _tidb_rowidの構造は次のようになります。

サインビットシャードビットAUTO_INCREMENTビット
1ビットSビット63-Sビット
  • AUTO_INCREMENTビットの値はTiKVに格納され、順次割り当てられます。値が割り当てられるたびに、次の値は1ずつ増加します。AUTO_INCREMENTビットの値が使い果たされると(つまり、最大値に達すると)、以降の自動割り当てはエラーFailed to read auto-increment value from storage engineで失敗します。
  • 値の範囲は_tidb_rowidです。最終的に生成される値の最大ビット数は、シャードビット + AUTO_INCREMENTビットなので、最大値は(2^63)-1です。

使用方法の詳細については、 ホットスポットの問題のトラブルシューティングガイド参照してください。

CREATE TABLE t ( id INT PRIMARY KEY NONCLUSTERED ) SHARD_ROW_ID_BITS = 4;
ALTER TABLE t SHARD_ROW_ID_BITS = 4;

このページは役に立ちましたか?