Buenas tardes, junto a mi compañero estamos teniendo problemas para entender los costos de las consultas. Dejo a continuación lo que entendimos y agradecemos si alguién puede confimar que vamos por buen camino:
Costo 5) Ejemplo: select prod_id from productos where color="azul"
Costo: Acá color no es una clave, por lo que tengo que recorrer toda la colección para poder encontrar cuales cumplen el where. Costo: la mitad del tamaño de la colección (además del costo por traer atributos)
Costo 4) Ejemplo: Si sabemos los prod_id de los productos azules, podemos consultar:
select prod_id from produtos where prod_id in (".....")
Costo: Acá accedemos por la clave, por lo que el costo será la cantidad de claves que tenemos dentro del in ("...").
Costo 7) Ejemplo:
select prod_id, f.fabricante_id from productos join fabricante as f on producto.fabricante_id = f.fabricante_id where color="azul"
Costo: En el join, cada producto tiene un único fabricante, por lo que, dado un producto tengo que ir a la colección fabricante y traer el documento accediendo por la clave de fabricante, entonces el costo del join es la cantidad de productos que tengo. (1 unidad por cada producto al cual tengo que ir a buscar al fabricante (* ver nota)). Luego accedo a la colección productos mediante el color que no es clave, el costo de esto es la mitad del tamaño de la colección.
* Qué pasa si el producto tiene fabricante_id = null? Entendemos que en este caso no se realiza la consulta del documento a la tabla Fabricante por lo que no se computa el costo +1 por esa búsqueda por fabricante_id.
Saludos.