You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
- # Before indexing
-
- EXPLAIN ANALYZE SELECT * from customer WHERE name='John Smith';
- QUERY PLAN
- ------------------------------------------------------------------------------------------------------
- Seq Scan on customer (cost=0.00..429.00 rows=3 width=211) (actual time=0.299..3.124 rows=3 loops=1)
- Filter: (name = 'John Smith'::text)
- Rows Removed by Filter: 9997
- Planning Time: 0.129 ms
- Execution Time: 3.146 ms
- (5 rows)
-
- # After indexing using btree(name):
-
- CREATE INDEX idx_name on customer using btree(name);
- EXPLAIN ANALYZE SELECT * from customer WHERE name='John Smith';
- QUERY PLAN
-
- -------------------------------------------------------------------------------------------------------
- ----------
- Bitmap Heap Scan on customer (cost=4.31..15.45 rows=3 width=211) (actual time=0.051..0.056 rows=3 loo
- ps=1)
- Recheck Cond: (name = 'John Smith'::text)
- Heap Blocks: exact=3
- -> Bitmap Index Scan on idx_name (cost=0.00..4.31 rows=3 width=0) (actual time=0.044..0.044 rows=3
- loops=1)
- Index Cond: (name = 'John Smith'::text)
- Planning Time: 0.423 ms
- Execution Time: 0.086 ms
-
- # A complicated query with like doesn't benefit from hash indexing
-
- EXPLAIN ANALYZE SELECT * FROM customer WHERE address LIKE '%Warren%Port%';
- QUERY PLAN
- ------------------------------------------------------------------------------------------------------
- Seq Scan on customer (cost=0.00..429.00 rows=1 width=211) (actual time=3.544..4.110 rows=1 loops=1)
- Filter: (address ~~ '%Warren%Port%'::text)
- Rows Removed by Filter: 9999
- Planning Time: 0.125 ms
- Execution Time: 4.131 ms
- (5 rows)
-
- The query can be improved and benefit from the btree indexing:
- EXPLAIN ANALYZE SELECT * FROM customer WHERE name >= 'Lisa' and name <= 'Lisb';
- QUERY PLAN
-
- -------------------------------------------------------------------------------------------------------
- ------------
- Bitmap Heap Scan on customer (cost=4.41..45.44 rows=12 width=211) (actual time=0.068..0.202 rows=90 l
- oops=1)
- Recheck Cond: ((name >= 'Lisa'::text) AND (name <= 'Lisb'::text))
- Heap Blocks: exact=83
- -> Bitmap Index Scan on idx_name (cost=0.00..4.41 rows=12 width=0) (actual time=0.042..0.042 rows=
- 90 loops=1)
- Index Cond: ((name >= 'Lisa'::text) AND (name <= 'Lisb'::text))
- Planning Time: 0.174 ms
- Execution Time: 0.233 ms
-
- Before indexing address:
-
- EXPLAIN ANALYZE SELECT * FROM customer WHERE address='USS Oneill FPO AE 11865';
-
- QUERY PLAN
- ------------------------------------------------------------------------------------------------------
- Seq Scan on customer (cost=0.00..429.00 rows=1 width=211) (actual time=2.639..2.639 rows=0 loops=1)
- Filter: (address = 'USS Oneill FPO AE 11865'::text)
- Rows Removed by Filter: 10000
- Planning Time: 0.084 ms
- Execution Time: 2.657 ms
- (5 rows)
-
- After indexing address:
- CREATE INDEX idx_address on customer using HASH(address);
- EXPLAIN ANALYZE SELECT * FROM customer WHERE address='USS Oneill FPO AE 11865';
- QUERY PLAN
-
- -------------------------------------------------------------------------------------------------------
- -----------------
- Index Scan using idx_address on customer (cost=0.00..8.02 rows=1 width=211) (actual time=0.016..0.016
- rows=0 loops=1)
- Index Cond: (address = 'USS Oneill FPO AE 11865'::text)
- Planning Time: 0.224 ms
- Execution Time: 0.035 ms
- (4 rows)
-
|