Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » PostgreSQL »

Índices parciales

Estas en el tema de Índices parciales en el foro de PostgreSQL en Foros del Web. Hola a todos, leyendo un poco en una página http://www.ipcorp.com.ar/blog/2009/09/28/mejorando-la-performance-de-postgresql-con-indices-parciales/, vi un poco referente al uso de los índices parciales, me gustaria saber para que ...
  #1 (permalink)  
Antiguo 09/06/2010, 14:13
 
Fecha de Ingreso: mayo-2010
Mensajes: 12
Antigüedad: 14 años, 7 meses
Puntos: 0
Índices parciales

Hola a todos, leyendo un poco en una página http://www.ipcorp.com.ar/blog/2009/09/28/mejorando-la-performance-de-postgresql-con-indices-parciales/, vi un poco referente al uso de los índices parciales, me gustaria saber para que funciona y en que momento mejora nuestras consultas.

El que quiere puede.
  #2 (permalink)  
Antiguo 09/06/2010, 14:33
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 10 meses
Puntos: 360
Respuesta: Índices parciales

hitokiri
el concepto de indices parciales es basicamente el mismo de los indices convencionales a diferencia que su uso lo delimita una condición.

Si quieres indexar un campo en el cual una gran parte de los registros, sería mas engorroso hacer la busqueda mediante indices, pero otra sección de registros te agilizaría mucho el trabajo, el uso de indices parciales sería ideal.

Por ejemplo, en un banco... si los clientes con mas de 100.000 dolares son aquellos que mas transacciones realizan y la repetición del campo indexado es muy repetitivo para ese cliente, este campo no sería un buen candidato a indexar, pero si los clientes con pocos ingresos tienen pocas transacciones, este podría ser un buen candidato para indexar. Como todos estan en la misma tabla, los indices convencionales indexan todo el campo o no indexan nada. Aca es donde los indices parciales toman cierta aplicación en la vida real.


Mira el ejemplo que utilizan en la documentación oficial
Cita:
CREATE TABLE access_log (
url varchar,
client_ip inet,
...
);
To create a partial index that suits our example, use a command such as this:

CREATE INDEX access_log_client_ip_ix ON access_log (client_ip)
WHERE NOT (client_ip > inet '192.168.100.0' AND client_ip < inet '192.168.100.255');
A typical query that can use this index would be:

SELECT * FROM access_log WHERE url = '/index.html' AND client_ip = inet '212.78.10.32';
A query that cannot use this index is:

SELECT * FROM access_log WHERE client_ip = inet '192.168.100.23';
tomado de http://www.postgresql.org/docs/8.0/s...s-partial.html

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming

Etiquetas: indice, indices, parcial, parciales
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:48.