Saltar al contenido principal
SQL, indexing, transactions, replication, caching, and when to use NoSQL.

Databases

SQL, indexing, transactions, replication, caching, and when to use NoSQL.

B-Tree Visualizer

Insert Sequence

Paso 0 / 0
Speed 100ms
Step Progress 0 / 0
Nodes 0
Height —
Status Ready
Node
Active
Inserted / Found
Splitting
Step Explanation

Full nodes split on the way down so every leaf stays at the same depth.

Pseudocode
 

Database Indexing

Intermediate (3/5) ~1 hora Index: estructura auxiliar para acelerar queries B-tree index: balanced tree para rangos Hash index: equality lookups O(1) Composite indexes y covering indexes Prereqs: SQL Queries, B-Tree

Database Indexing acelera las queries de lectura a costa de overhead en escritura. Un índice es una estructura de datos separada que permite al database encontrar filas sin escanear toda la tabla.

¿Por qué Indexar?

Sin índice: SELECT * FROM users WHERE email = 'x' escanea todas las filas (O(n)). Con índice: encuentra la fila en O(log n).

Tipos de Índices

B-Tree Index

El más común. Árbol balanceado sobre las columnas indexadas.

  • Búsqueda exacta: O(log n).
  • Range queries: O(log n + k) donde k = filas resultantes.

Hash Index

Usa hash function para mapear valores a buckets.

  • Búsqueda exacta: O(1) promedio.
  • Range queries: no soportado.

Clustered vs Non-Clustered

TipoAlmacenamientoVentaja
ClusteredLos datos están en el índiceSolo una por tabla, range queries rápidas
Non-clusteredÍndice apunta a datosMúltiples por tabla

Composite Indexes

Índice sobre múltiples columnas: (last_name, first_name).

Leftmost prefix rule: el índice se usa si consultas por last_name, o (last_name, first_name), pero no por first_name solo.

Selectividad

  • Alta selectividad (muchos valores distintos): índice muy efectivo.
  • Baja selectividad (pocos valores, como boolean): índice casi inútil.

Trade-offs

BeneficioCosto
Queries más rápidasEscrituras más lentas (INSERT/UPDATE/DELETE deben actualizar índice)
Menos I/OMás espacio en disco
Efficient range queriesMantenimiento overhead

Aplicaciones

  • OLTP — índices en foreign keys y columnas filtradas
  • OLAP — índices en columnas de agregación
  • Full-text search — índices invertidos (Elasticsearch)
  • Enseñanza — introduce trade-offs en databases

Trayectoria de Práctica

  1. Investiga EXPLAIN ANALYZE: verifica si tu query usa el índice.
  2. Crea un índice compuesto: prueba leftmost prefix rule.
  3. Investiga covering index: ¿cuándo el query no necesita acceder a la tabla?
  4. Investiga index selectivity: ¿cuándo un índice no ayuda?
  5. Investiga índices parciales: ¿para qué sirven?