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

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

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

TiDB のオブジェクト

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

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

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

データベース

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

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

テーブル

テーブルは、関連するデータをデータベースにまとめたものです。

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

索引

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

インデックスには一般的に 2 つのタイプがあります。

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

注記:

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

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

特殊なインデックス

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

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

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

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

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

アクセス制御

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

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

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

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

オブジェクトの制限

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

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

Playground
新規
登録なしで TiDB の機能をワンストップでインタラクティブに体験できます。
製品
TiDB Cloud
TiDB
価格
PoC お問い合わせ
エコシステム
TiKV
TiFlash
OSS Insight
© 2024 PingCAP. All Rights Reserved.
Privacy Policy.