DECIMAL
説明
DECIMAL(P[,S])
高精度の固定小数点値です。P は有効数字の総数(精度)を表します。S は小数点以下の最大桁数(スケール)を表します。
P を省略した場合、デフォルトは10です。S を省略した場合、デフォルトは0です。
-
Decimal V2
Pの範囲は [1,27] で、Sの範囲は [0,9] です。PはSの値以上でなければなりません。Sのデフォルト値は0です。 -
Fast Decimal (Decimal V3)
Pの範囲は [1,38] で、Sの範囲は [0, P] です。Sのデフォルト値は0です。Fast Decimal はより高い精度を提供します。主な最適化:
1. Fast Decimal は可変幅の整数を使用して小数を表現します。例えば、精度が18以下の小数を表現するために64ビットの整数を使用します。一方、Decimal V2 はすべての小数に対して128ビットの整数を一様に使用します。64ビットプロセッサでの算術演算や変換操作は、より少ない命令を使用し、パフォーマンスを大幅に向上させます。
2. Decimal V2 と比較して、Fast Decimal はいくつかのアルゴリズムで大幅な最適化を行い、特に乗算においてパフォーマンスを約4倍向上させました。
Fast Decimal は、FE の動的パラメータ enable_decimal_v3 によって制御され、デフォルトでは true です。
バージョン3.1以降、StarRocks は ARRAY、MAP、および STRUCT における Fast Decimal エントリをサポートしています。