DECIMAL
説明
DECIMAL(P[,S])
高精度の固定小数点数で、P は有効数字の総数(精度)を表し、S は小数点以下の最大桁数(スケール)を表します。
-
Decimal V2
P の範囲は [1,27]、S の範囲は [0,9] で、さらに P は S の値以上でなければなりません。S のデフォルト値は 0 です。
-
Fast Decimal (バージョン 1.18 デフォルト)
P の範囲は [1,38]、S の範囲は [0, P] です。S のデフォルト値は 0 です。starrocks-1.18 以降、decimal 型はより高精度な FastDecimal をサポートしています。
主な最適化は以下の通りです:
1. 内部的に複数幅の整数を使用して decimal を表現します。Decimal (P < = 18, S) は 64bit 整数を使用します。元の decimal V2 実装と比較して、128bit 整数を一様に使用します。算術演算と変換演算は 64bit プロセッサ上でより少ない命令を使用するため、パフォーマンスが大幅に向上します。
2. Decimal V2 と比較して、Fast Decimal の実装は特定のアルゴリズム、特に乗算の極限最適化を行い、パフォーマンスが約 4 倍向上しています。
現在の制限事項:
1. 現在、fast decimal は配列型をサポートしていません。ユーザーが配列 (decimal) 型を使用したい場合は、配列 (double) 型を使用するか、decimal v3 を無効にした後に配列 (decimal) 型を使用してください。
2. Hive 直接接続では、orc および parquet データ形式はまだ decimal をサポートしていません。