Ver Mensaje Individual
  #5 (permalink)  
Antiguo 14/12/2008, 18:27
seyko
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 3 meses
Puntos: 13
Respuesta: Consulta Indices en postgres

una muestra practica:
Código:
pruebas=# create table personas(id serial primary key, nombre varchar, dni integer);
NOTICE:  CREATE TABLE creará una secuencia implícita «personas_id_seq» para la columna serial «personas.id»
NOTICE:  CREATE TABLE / PRIMARY KEY creará el índice implícito «personas_pkey» para la tabla «personas»
CREATE TABLE
pruebas=# insert into personas (nombre, dni) select 'nombre ' || foo, foo from generate_series(1,100000) foo;
INSERT 0 100000
pruebas=# EXPLAIN ANALYZE select * from personas where dni between 2500 AND 5000;
                                                 QUERY PLAN
-------------------------------------------------------------------------------------------------------------
 Seq Scan on personas  (cost=0.00..2133.00 rows=2497 width=20) (actual time=1.425..74.737 rows=2501 loops=1)
   Filter: ((dni >= 2500) AND (dni <= 5000))
 Total runtime: 79.222 ms
(3 rows)

pruebas=# create index idx_dni on personas(dni);
CREATE INDEX
pruebas=# EXPLAIN ANALYZE select * from personas where dni between 2500 AND 5000;
                                                        QUERY PLAN
--------------------------------------------------------------------------------------------------------------------------
 Index Scan using idx_dni on personas  (cost=0.00..93.20 rows=2497 width=20) (actual time=0.131..6.596 rows=2501 loops=1)
   Index Cond: ((dni >= 2500) AND (dni <= 5000))
 Total runtime: 10.985 ms
(3 rows)
Salu2