次の表を検討してください。
Column | Type |
--------------------+--------------------------+
id | bigint |
creation_time | timestamp with time zone |
...
次のようなクエリ(より複雑なJOINは言うまでもなく)は、各アイテムのcreation_time :: DATEを計算する必要があるため、かなり時間がかかります。
SELECT creation_time::DATE, COUNT(*) FROM items GROUP BY 1;
タイムスタンプの日の部分にインデックスを作成するにはどうすればよいcreation_time::DATE
ですか?
私が試してみました:
CREATE INDEX items_day_of_creation_idx ON items (creation_time)::date;
CREATE INDEX items_day_of_creation_idx ON items (creation_time::date);
しかし、両方とも失敗しました:
ERROR: syntax error at or near "::"
式にインデックスを作成する場合、その式は括弧で囲む必要があります(列/式リストを囲む括弧に加えて:
CREATE INDEX items_day_of_creation_idx ON items ( (creation_time::date) );
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加