メインコンテンツまでスキップ
バージョン: 2.5

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 をサポートしていません。