Saltar al contenido

Buscar fila por fila

SQL · Unidad 15: Índices y rendimiento

Luis abre la app de la tienda y toca «Mis pedidos». ¿Qué he pedido? La app corre esta consulta y salen sus tres pedidos.

Para encontrarlos, la base leyó los doce. pedidos está guardada por su id, el número de pedido, y las de Luis pueden estar en cualquier parte. Nada le dice dónde. Así que pasa por cada fila y pregunta si su cliente_id es 2. Las que dicen que sí, salen. Las otras nueve también las leyó.

SELECT id, producto_id, fecha
FROM pedidos
WHERE cliente_id = 2;

Devuelve

idproducto_idfecha
322026-01-04
632026-01-11
1262026-01-20

El resto de la explicación está en la lección, que es del plan completo.

Ejercicios de esta lección

Se hacen en la app, que los corrige al momento y explica por qué.

  1. 1. Opción múltiple

    Bruno también toca «Mis pedidos». Es el cliente 8 y nunca ha pedido nada, así que esta consulta no devuelve ninguna fila. ¿Cuántas filas de pedidos tuvo que leer la base para saberlo?

  2. 2. Opción múltiple

    En la tienda de los 800 000 pedidos, Luis tiene 40. Toca «Mis pedidos». ¿Cuántas filas lee la base, buscando como hasta ahora?

  3. 3. Completa el código

    El dueño quiere saber cómo busca la base los productos agotados. Completa para pedirle el plan, sin correr la consulta.

  4. 4. Predice la salida

    Alguien quiere ver el plan de un borrado antes de atreverse a correrlo. ¿Qué devuelve el último SELECT?

  5. 5. Encuentra el bug

    Debería salir el plan de la búsqueda de los pedidos de 3 unidades o más. Sale un error. ¿Qué línea tiene el problema?

  6. 6. Ordena las líneas

    El catálogo se imprime del producto más caro al más barato. Ordena las líneas para ver el plan de esa consulta. Sobran dos.

  7. 7. Completa el código

    Aquí una tabla como pedidos está guardada en el orden de su clave, el id. Completa para que el plan tenga una sola línea, porque la base no tiene nada que ordenar aparte.

  8. 8. Opción múltiple

    El dueño pide cada noche cuántas unidades se han pedido en total. El plan de esta consulta dice SCAN pedidos. ¿Hay algo que arreglar?

  9. 9. Encuentra el caso que falla

    Con LIMIT y sin nada que ordenar, la base deja de leer en cuanto junta las filas que le pidieron. Alguien lo aprovecha en «Mis pedidos»: como Luis tiene tres pedidos, le pone LIMIT 3 para que no siga leyendo. Debe salir el id de todos los pedidos de Luis. ¿Con cuál de estos datos deja de salir lo correcto?

Hacer esta lección

Se abre en el navegador. Esta lección es del plan completo; la primera unidad de cada curso es gratis.

Ver todas las lecciones →