2011-05-25 11 views

Respuesta

7

La condición donde no puede verse afectada, pero el ORDER BY es, sin duda afectada

PostgreSQL Index Ordering Documentation

+0

¿Qué hay con la vinculación de los documentos de versiones inéditas todavía? –

+2

Este es un aspecto importante: * Un caso especial importante es ORDER BY en combinación con LIMIT n: una clasificación explícita tendrá que procesar todos los datos para identificar las primeras n filas, pero si hay un índice que coincida con ORDER BY, el las primeras n filas se pueden recuperar directamente, sin escanear el resto. * – Mel

+0

@Milen A. Radev Gracias por señalarlo, fijado al punto en la versión lanzada. Creo que Google podría haber respondido la pregunta OP también sin embargo. – Kallex

6

PostgreSQL (o cualquier otro motor de DB, para el caso) leerá su índice de cualquier manera bien. Obtendrá un análisis de índice o un análisis de índice inverso.

El problema es cuando tienes un escaneo de varias columnas. En este caso:

index on (foo, bar) 

va a trabajar para foo asc, bar asc, así como foo desc, bar desc. En algunas bases de datos esto no funcionará en foo desc, bar asc (escaneos inversos foo, ignora la barra) o foo asc, bar desc (escanea foo, ignora la barra).

0

descendente le puede dar un impulso si la columna (s) contiene datos secuencial que se hace referencia en los valores "recientes" - columnas de fecha, columnas ID, etc.

En términos generales, las tablas/índices tendrían para ser realmente grande para que haga la diferencia, sin embargo.

No afectará lo que se devuelve, cómo.

Cuestiones relacionadas