📣

TiDB Cloud Serverless が
Starter
に変わりました!このページは自動翻訳されたものです。
原文はこちらからご覧ください。

TiDB データベース スキーマ設計の概要

このドキュメントでは、TiDB 内のオブジェクト、アクセス制御、データベース スキーマの変更、オブジェクトの制限など、TiDB データベース スキーマ設計の基本について説明します。

以降のドキュメントでは、 書店例に、データベースを設計し、データベースでデータの読み取りおよび書き込み操作を実行する方法を説明します。

TiDB内のオブジェクト

いくつかの一般的な用語を区別するために、TiDB で使用される用語に関する簡単な合意を次に示します。

  • 一般的な用語データベースとの混乱を避けるため、このドキュメントでは、データベースは論理オブジェクトを指し、 TiDB はTiDB 自体を指し、クラスターはTiDB のデプロイされたインスタンスを指します。

  • TiDBはMySQL互換の構文を使用します。この構文では、スキーマはデータベース内の論理オブジェクトではなく、一般的な用語スキーマ指します。詳細については、 MySQLドキュメント参照してください。スキーマを論理オブジェクトとして扱うデータベース(例: PostgreSQL )から移行する場合はオラクルこの違いマイクロソフトSQLサーバー注意してください。

データベース

TiDB のデータベースは、テーブルやインデックスなどのオブジェクトの集合です。

TiDBにはtestというデフォルトのデータベースが付属しています。ただし、 testデータベースを使用する代わりに、独自のデータベースを作成することをお勧めします。

テーブル

テーブルは、 データベース内の関連データの集合です。

各テーブルはで構成されています。行の各値は特定のに属します。各列には単一のデータ型のみが許可されます。列をさらに限定するには、 制約追加できます。計算を高速化するには、 生成された列追加できます。

索引

インデックスとは、テーブル内の選択された列のコピーです。1 のテーブルつまたは複数の列を使用してインデックスを作成できます。インデックスを使用すると、TiDBはテーブル内のすべての行を毎回検索することなく、データを迅速に見つけることができるため、クエリのパフォーマンスが大幅に向上します。

一般的なインデックスには次の 2 つの種類があります。

  • 主キー: 主キー列のインデックス。
  • セカンダリ インデックス: 主キー以外の列のインデックス。

注記:

TiDB では、主キーのデフォルト定義がインノDB (MySQL の共通storageエンジン) とは異なります。

  • InnoDB では、主キーの定義は一意であり、NULL ではなく、クラスター化されたインデックスです。
  • TiDBでは、主キーの定義は一意であり、NULLではありません。ただし、主キーがクラスター化インデックスであるとは限りません。主キーがクラスター化インデックスであるかどうかを指定するには、 CREATE TABLE文のPRIMARY KEY後に非予約キーワードCLUSTEREDまたはNONCLUSTERED追加します。文でこれらのキーワードを明示的に指定しない場合、デフォルトの動作はシステム変数@@global.tidb_enable_clustered_indexによって制御されます。詳細については、 クラスター化インデックス参照してください。

特殊なインデックス

様々なユーザーシナリオにおけるクエリパフォーマンスを向上させるため、TiDBはいくつかの特殊なタイプのインデックスを提供しています。各タイプの詳細については、 インデックスと制約参照してください。

サポートされているその他の論理オブジェクト

TiDB は、テーブルと同じレベルで次の論理オブジェクトをサポートします。

  • ビュー : ビューは仮想テーブルとして機能し、そのスキーマはビューを作成するSELECTステートメントによって定義されます。
  • シーケンス : シーケンスは連続したデータを生成して保存します。
  • 一時テーブル : データが永続化されないテーブル。

アクセス制御

TiDBは、ユーザーベースとロールベースの両方のアクセス制御をサポートしています。ユーザーがデータオブジェクトとデータスキーマを表示、変更、または削除できるようにするには、 権限からユーザー直接付与するか、 権限から役割までをユーザーに付与します。

データベーススキーマの変更

ベスト プラクティスとして、データベース スキーマの変更を実行するには、ドライバーまたは ORM ではなく、 MySQLクライアントまたは GUI クライアントを使用することをお勧めします。

オブジェクトの制限

詳細についてはTiDB の制限参照してください。

ヘルプが必要ですか?

不和またはスラック 、あるいはサポートチケットを送信するについてコミュニティに質問してください。

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