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

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

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

TiDB のオブジェクト

いくつかの一般的な用語を区別するために、TiDB で使用される用語について簡単に説明します。

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

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

データベース

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

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

テーブル

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

各テーブルはで構成されます。行の各値は特定のに属します。各列には 1 つのデータ型のみが許可されます。列をさらに修飾するには、いくつかの制約を追加できます。計算を高速化するために、 生成された列 (実験的機能)を追加できます。

索引

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

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

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

ノート:

TiDB では、 Primary Keyのデフォルト定義がInnoDB (MySQL の一般的なstorageエンジン) とは異なります。

  • InnoDB では、 Primary Keyの定義は一意であり、null ではなく、クラスター化されたインデックスです
  • TiDB では、 Primary Keyの定義は一意であり、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 Dedicated
TiDB Serverless
TiDB
価格
PoC お問い合わせ
エコシステム
TiKV
TiFlash
OSS Insight
© 2024 PingCAP. All Rights Reserved.
Privacy Policy.