このトピックでは、リストのデフォルトハッシュ分割が使用されるシナリオについて説明します。
リスト分割は、すべてのシナリオに適しているわけではありません。 場合によっては、パーティションキー値を列挙できないか、パーティションキー値の総数が非常に多いが、少量のデータに対応することがあります。 例えば、パーティションキー値の20% はデータの80% を保持し、パーティションキー値の80% は残りの20% データを保持する。 この場合、[リストのデフォルトハッシュ分割] を選択できます。 これにより、データの80% にリストパーティショニングを使用し、データの残りの20% にハッシュパーティショニングを使用できます。
例えば、マルチテナント型の業務システムでは、各テナントで生成されるユーザデータの量が大きく異なる。 リストパーティションを使用して、データ量が大きいテナントを分割し、ハッシュパーティションを使用して、データ量が小さいテナントを分割することができます。 次の表に、さまざまなテナントのデータボリュームとパーティションを示します。
テナントID | データ量 | パーティション |
キーアカウント1 | 3000 万 | p1 |
キーアカウント2 | 2600万人 | p2 |
キーアカウント3 | 2400万 | p3 |
キーアカウント4 | 2000 万 | p4 |
中小のお客様 | 3000 万 | p_others |
CREATE TABLE cust_orders
(
customer_id VARCHAR(36) 、
年VARCHAR(60) 、
order_id INT,
order_contentテキスト
) リストコラムによるパーティー (customer_id)
(
PARTITION p1 VALUES IN ('Key account 1') 、
PARTITION p2の値 (「キーアカウント2」) 、
PARTITION p3 VALUES IN (「キーアカウント3」) 、
PARTITION p4 VALUES IN (「キーアカウント4」) 、
PARTITION p_othersデフォルトPARTITIONS 3
);