de Martin LE TARNEC.

Lo que cada desarrollador debería saber acerca de los rendimientos SQL


  1. Preface — ¿Porqué la indexación es una tarea del equipo de desarrollo?

  2. Anatomía de un índice — ¿A qué se parece un índice?

    1. Los nodos hojas — Una lista doblemente enlazada

    2. El B-Tree — Es un árbol balanceado

    3. Índices Lentos, Sección I — Dos ingredientes para hacer un índice lento

  3. El filtro Where — Indexar para mejorar el rendimiento de una búsqueda

    1. Los operadores de igualdad — La clave de la búsqueda Lookup

      1. Llaves primarias — Verificar el uso de los índices

      2. Llaves concatenadas — Índices multi-columna

      3. Índices Lentos, Sección II — El primer ingrediente, reexaminado

    2. Funciones — Usar funciones dentro del filtro where

      1. Búsqueda insensible a mayúsculas y minúsculasUPPER y LOWER

      2. Funciones definidas por el usuario — Restricciones de las funciones basadas en índices

      3. Sobre-indexar — Evitar la redundancia

    3. Variables Bind — Para seguridad y rendimiento

    4. Buscar por rangos — Más allá de la igualdad

      1. Mayor que, menor que y BETWEEN — El orden de las columnas, reexaminado

      2. Indexar Filtros LIKE SQLLIKE no es para una búsqueda de texto completo

      3. Índice Combinado — ¿Porqué no se puede usar un índice por cada columna?

    5. Índices Parciales — Indexar los registros seleccionados

    6. NULL en la base de datos Oracle — Una curiosidad importante

      1. NULL dentro de los índices — Cada índice es un índice parcial

      2. Restricciones NOT NULL — afecta el uso de los índices

      3. Emular índices parciales — usando funciones basados en índices

    7. Condiciones Complicadas — Los anti-modelos más comunes

      1. Fechas — Prestar especial atención a los tipos DATE

      2. Cadenas de caracteres numéricos — No mezclen los tipos

      3. Mezclar columnas — usar filtros where redundantes

      4. Lógica inteligente — La manera más inteligente para crear SQL lentos

      5. Matemáticas — Las bases de datos no resuelven ecuaciones

  4. Pruebas y escabilidad — Acerca del hardware

    1. Volumen de datos — La venganza del viejo y rápido índice

    2. Carga del sistema — Carga afecta tiempo de respuesta

    3. Tiempo de respuesta y Response y ancho de banda — Escabilidad horizontal

  5. La operación de unión (Join) — No está lento si está bien hecho

    1. Loop anidados — Acerca del problema de selección N+1 en ORM

    2. Hash join — Requiere un enfoque completamente diferente para indexar

    3. Sort-Merge join — Como un cierre sobre dos conjuntos ordenados

  6. Agrupación de datos — Para reducir IO

    1. Filtros de predicados usados intencionalmente sobre índices — para afinar LIKE

    2. Solo Escanear Índices — Evitar el acceso a la tabla

    3. Índices Organizados en Tablas (IOT) — Índices en cluster sin tablas

  7. Ordenar y agrupar — Agregando order by: el tercer poder

    1. Indexar Order By — Interacciones de los filtros where

    2. ASC/DESC y NULL FIRST/LAST — cambiando el orden del índice

    3. Indexar Group By — Agregando group by

  8. Resultados parciales — Paginar con eficiencia

    1. Seleccionar los registros Top-N — si se requieren solamente los primeros registros

    2. Devolver la próxima pagina — El “offset” y los métodos de búsqueda comparados

    3. Window-Functions — Pagination using analytic queries

  9. Insert, Delete y Update — Impactos de la indexación sobre los comandos DML

    1. Insert — no puede tomar directamente los beneficios de los índices

    2. Delete — usa los índices sobre los filtros where

    3. Update — no afecta todos los índices de la tabla

  1. Planes de ejecución — Devolver y leer los planes de ejecución

    1. DB2 LUW : ObtenerOperacionesPredicados de acceso y de filtro

    2. MySQL : ObtenerOperacionesPredicados de acceso y de filtro

    3. Oracle : ObtenerOperacionesPredicados de acceso y de filtro

    4. PostgreSQL : ObtenerOperacionesPredicados de acceso y de filtro

    5. SQL Server : ObtenerOperacionesPredicados de acceso y de filtro

  2. Guía de los mitos — Mitos comunes y falsas creencias

    1. Índices pueden empeorar

    2. Primero el más selectivo

    3. Oracle no puede indexar NULL

    4. SQL dinámico es lento

  3. Esquema de prueba — Scripts de CREATE y INSERT

    DB2MySQLOraclePostgreSQLSQL Server

Acerca del autor

Foto de Markus Winand

Markus Winand enseña eficientemente SQL, en casa y online. Minimiza el tiempo de desarrollo utilizando moderno SQL y optimiza el tiempo de ejecución con indexación inteligente. Para ello también ha publicado el libro SQL Performance Explained.

“Use The Index, Luke” de Markus Winand se halla bajo licencia Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Unported License.
Aspectos legales | Contacto | SIN GARANTÍA | Marcas | Privacy | CC-BY-NC-ND 3.0 licencia