InfiniDBの特徴の1つである水平パーティションは、エクステントマップ機能によって実現されています。
エクステントマップを効果的に活用するためには、列に指定するデータ型に留意する必要があります。
データ型によるエクステントマップ使用有無
データ型 | データ長(Byte) | エクステントマップの使用 |
---|---|---|
TINYINT | - | ○ |
SMALLINT | - | ○ |
INTEGER / INT | - | ○ |
BIGINT | - | ○ |
DECIMAL / NUMERIC | - | ○ |
DOUBLE / REAL | - | × |
FLOAT | - | × |
DATE | - | ○ |
DATETIME | - | ○ |
CHAR | 8バイト以下 | ○ |
9バイト以上 | × |
|
VARCHAR | 7バイト以下 | ○ |
8バイト以上 | × |
エクステントマップが使用されないと、実行されるクエリによっては水平パーティションによるデータの絞り込みが適用されず、十分なパフォーマンスを発揮できないことがあります。
特に日本語などのマルチバイト文字をCHAR型やVARCHAR型の列に格納する場合、1文字で3バイトが使用されるため(InfiniDBはUTF8をサポート)、設計時から留意する必要があります。