各テーブルタイプの機能
キーカラムとソートキー
| Primary Key table | Duplicate Key table | Aggregate table | Unique Key table | |
|---|---|---|---|---|
| キーカラムとUNIQUE制約 | 主キーにはUNIQUE制約とNOT NULL制約があります。 | 重複キーにはUNIQUE制約がありません。 | 集計キーにはUNIQUE制約があります。 | ユニークキーにはUNIQUE制約があります。 |
| キーカラムとデータ変更の論理的関係 | 新しいデータ行の主キー値がテーブル内の既存のデータ行と同じ場合、ユニーク制約違反が発生します。その場合、新しいデータ行が既存のデータ行を置き換えます。 ユニークキーテーブルと比較して、Primary Key tableは強化された基盤ストレージエンジンを持っているため、ユニークキーテーブルを置き換えることができます。 | 重複キーにはUNIQUE制約がありません。したがって、新しいデータ行の重複キー値がテーブル内の既存のデータ行と同じ場合、新旧のデータ行はテーブル内に保持されます。 | 新しいデータ行の集計キー値がテーブル内の既存のデータ行と同じ場合、新旧のデータ行は集計キーと値カラムの集計関数に基づいて集計されます。 | 新しいデータ行のユニークキー値がテーブル内の既存のデータ行と同じ場合、新しいデータ行が既存のデータ行を置き換えます。 ユニークキーテーブルは、集計関数がreplaceである集計テーブルと見なすことができます。 |
| キーカラムとソートキーの関係 | v3.0.0以降、ソートキーはPrimary Key tableの主キーから分離されています。 | v3.3.0以降、Duplicate Key tableはORDER BYを使用してソートキーを指定することをサポートしています。ORDER BYとDUPLICATE KEYの両方が使用される場合、ORDER BYが優先されます。 | v3.3.0以降、ソートキーはAggregate tableの集計キーから分離されています。Aggregate tableはORDER BYを使用してソートキーを指定し、AGGREGATE KEYを使用して集計キーを指定することをサポートしています。ソートキーと集計キーのカラムは同じである必要がありますが、カラムの順序は同じである必要はありません。 | v3.3.0以降、ソートキーはUnique Key tableのユニークキーから分離されています。Unique Key tableはORDER BYを使用してソートキーを指定し、UNIQUE KEYを使用してユニークキーを指定することをサポートしています。ソートキーとユニークキーのカラムは同じである必要がありますが、カラムの順序は同じである必要はありません。 |
| キーカラムとソートキーがサポートするデータタイプ | 数値(整数とBOOLEANを含む)、文字列、日付(DATEとDATETIME)。 | 数値(整数、BOOLEAN、DECIMALを含む)、文字列、日付(DATEとDATETIME)。 | ||
| キーカラムとパーティション/バケットカラムの関係 | パーティションカラムとバケットカラムは主キーに含まれている必要があります。 | なし | パーティションカラムとバケットカラムは集計キーに含まれている必要があります。 | パーティションカラムとバケットカラムはユニークキーに含まれている必要があります。 |