私のテーブルは次のとおりです(他にもいくつかの列があります):
id INTEGER
amount INTEGER
に索引がありますamount
。クエリは次のとおりです。
explain analyze select count(amount) from receipt
出力は次のとおりです。
Aggregate (cost=215856.23..215856.23 rows=1 width=4) (actual time=180209.785..180209.787 rows=1 loops=1)
-> Index Only Scan using idx_amount on receipt (cost=0.00..215046.23 rows=1620001 width=4) (actual time=0.109..177443.189 rows=2584317 loops=1)
Heap Fetches: 2316761
Total runtime: 180209.868 ms
どうしたの?ここで説明されているように、インデックスのみのスキャンが使用され、リクエストを最適化することになっています。なぜ遅いのですか?