すべてのプロダクト
Search
ドキュメントセンター

PolarDB:シャードの数を選択する

最終更新日:May 28, 2024

このトピックでは、PolarDB-X 1.0の水平パーティション分割中に物理テーブルシャードの数を選択する方法について説明します。

背景

PolarDB-X 1.0は、データベースシャードレベルとテーブルシャードレベルでの水平パーティショニングをサポートします。 データベースの作成時に [Horizontal Partitioning] を選択した場合、PolarDB-X 1.0はデフォルトでApsaraDB RDS for MySQLインスタンスごとに8つの物理データベースシャードを作成します。 各物理データベースシャードに1つ以上の物理テーブルシャードを作成できます。 テーブルシャードの数は、しばしばシャードの数と呼ばれます。

計算式

一般に、1つの物理テーブルシャードの推奨される総容量は、5百万から50百万行のデータの範囲です。 1つの行に4 KBを超えるデータが含まれている場合、推奨される合計容量は5百万行以下のデータです。 さらに、B + ツリーの深さを3〜4レイヤーに設定することをお勧めします。

今後1〜2年でデータがどれだけ成長するかを見積もります。 各物理データベースシャードに作成される物理テーブルシャードの数を取得するには、推定合計データサイズを物理データベースシャードの総数で除算します。 次に、結果を単一の物理テーブルシャードの推奨最大データサイズ (たとえば、5百万行のデータ) で割ります。

物理データベースシャードあたりの物理テーブルシャード=CEILING (推定合計データサイズ /(ApsaraDB RDS for MySQLインスタンスの数x 8)/5,000,000)

計算された物理テーブルシャードの数が1に等しい場合、各物理データベースシャードで1つの物理テーブルシャードを使用できます。 計算された物理テーブルシャードの数が1より大きい場合、各物理データベースシャードに複数の物理テーブルシャードを作成することを推奨します。

  • 2年間で、テーブルの合計データサイズが約100万行になり、4行を購入したと仮定します。 ApsaraDB RDS for MySQLインスタンス 次の式を使用して、最適なシャード数を計算できます。
    各物理データベースシャードの物理テーブルシャード=CEILING(100,000,000/(4x8)/5,000,000) = CEILING(0.625) = 1

    結果は1である。 したがって、各物理データベースシャードに必要な物理テーブルシャードは1つだけです。

  • 2年間で、テーブルの合計データサイズが約100万行になり、1行のみを購入したと仮定します。 ApsaraDB RDS for MySQLインスタンス。 次の式を使用して、最適なシャード数を計算できます。
    各物理データベースシャードの物理テーブルシャード=CEILING(100,000,000/(1x8)/5,000,000) = CEILING(2.5) = 3

    結果は3である。 したがって、各物理データベースシャードに3つの物理テーブルシャードを作成することをお勧めします。