Preface — ¿Porqué la indexación es una tarea del equipo de desarrollo?
Anatomía de un índice — ¿A qué se parece un índice?
Los nodos hojas — Una lista doblemente enlazada
El B-Tree — Es un árbol balanceado
Índices Lentos, Sección I — Dos ingredientes para hacer un índice lento
El filtro Where — Indexar para mejorar el rendimiento de una búsqueda
Los operadores de igualdad — La clave de la búsqueda Lookup
Llaves primarias — Verificar el uso de los índices
Llaves concatenadas — Índices multi-columna
Índices Lentos, Sección II — El primer ingrediente, reexaminado
Funciones — Usar funciones dentro del filtro
where
Búsqueda insensible a mayúsculas y minúsculas —
UPPER
yLOWER
Funciones definidas por el usuario — Restricciones de las funciones basadas en índices
Sobre-indexar — Evitar la redundancia
Variables Bind — Para seguridad y rendimiento
Buscar por rangos — Más allá de la igualdad
Mayor que, menor que y
BETWEEN
— El orden de las columnas, reexaminadoIndexar Filtros
LIKE
SQL —LIKE
no es para una búsqueda de texto completoÍndice Combinado — ¿Porqué no se puede usar un índice por cada columna?
Índices Parciales — Indexar los registros seleccionados
NULL
en la base de datos Oracle — Una curiosidad importanteNULL
dentro de los índices — Cada índice es un índice parcialRestricciones
NOT NULL
— afecta el uso de los índicesEmular índices parciales — usando funciones basados en índices
Condiciones Complicadas — Los anti-modelos más comunes
Fechas — Prestar especial atención a los tipos
DATE
Cadenas de caracteres numéricos — No mezclen los tipos
Mezclar columnas — usar filtros
where
redundantesLógica inteligente — La manera más inteligente para crear SQL lentos
Matemáticas — Las bases de datos no resuelven ecuaciones
Pruebas y escabilidad — Acerca del hardware
Volumen de datos — La venganza del viejo y rápido índice
Carga del sistema — Carga afecta tiempo de respuesta
Tiempo de respuesta y Response y ancho de banda — Escabilidad horizontal
La operación de unión (Join) — No está lento si está bien hecho
Loop anidados — Acerca del problema de selección N+1 en ORM
Hash join — Requiere un enfoque completamente diferente para indexar
Sort-Merge join — Como un cierre sobre dos conjuntos ordenados
Agrupación de datos — Para reducir IO
Filtros de predicados usados intencionalmente sobre índices — para afinar
LIKE
Solo Escanear Índices — Evitar el acceso a la tabla
Índices Organizados en Tablas (IOT) — Índices en cluster sin tablas
Ordenar y agrupar — Agregando
order by
: el tercer poderIndexar Order By — Interacciones de los filtros
where
ASC
/DESC
yNULL FIRST
/LAST
— cambiando el orden del índiceIndexar Group By — Agregando
group by
Resultados parciales — Paginar con eficiencia
Seleccionar los registros Top-N — si se requieren solamente los primeros registros
Devolver la próxima pagina — El “offset” y los métodos de búsqueda comparados
Window-Functions — Pagination using analytic queries
Insert, Delete y Update — Impactos de la indexación sobre los comandos DML
Planes de ejecución — Devolver y leer los planes de ejecución
Db2 (LUW) : Obtener • Operaciones • Predicados de acceso y de filtro
MySQL : Obtener • Operaciones • Predicados de acceso y de filtro
Oracle : Obtener • Operaciones • Predicados de acceso y de filtro
PostgreSQL : Obtener • Operaciones • Predicados de acceso y de filtro
SQL Server : Obtener • Operaciones • Predicados de acceso y de filtro
Guía de los mitos — Mitos comunes y falsas creencias
Esquema de prueba — Scripts de
CREATE
yINSERT
Db2 (LUW) • MySQL • Oracle • PostgreSQL • SQL Server