alanezz / Syllabus-2019-1

26 stars 13 forks source link

Duda contenido Costo I/O #127

Closed tgarcia5 closed 5 years ago

tgarcia5 commented 5 years ago

Hola, estoy bastante confundido con todo el tema de costos, tengo dos dudas principalmente. 1) ¿ La única diferencia entre calcular el costo en un B+ tree clustered y uno unclustered es que se en el unclustered se agrega la cardinalidad de la consulta alfinal? 2) ¿Al calcular el costo con un hash index, como afecta tener menos buckets que el total de tuplas en el cálculo?

TamaraCucumides commented 5 years ago

1) Eso depende de los supuestos que estés haciendo (p. ej: cuantos punteros caben por pagina)

2) No tiene sentido hacer un bucket para cada dato (algo asi solo tendria sentido si la función de hash fuera inyectiva, lo cual no es asi [colisiones]) No entiendo a qué va tu preguntanacá, por si puedes elaborar más

cacosandon commented 5 years ago

Pero independiente de los punteros por página igual tendré que recorrer N punteros (uno por cada tupla) o no?

TamaraCucumides commented 5 years ago

Si obvio, pero el costo que nos importa no es el costo de ver distintos punteros, es el costo I/O

En vez de cuantificar cuántos datos estoy leyendo, se cuantifica a cuánts paginas de disco tengo que qcceder para revisar todos esos datos

cacosandon commented 5 years ago

Entiendo, pero para acceder al dato desde el puntero se cuenta +1 en I/O, o no? entonces se sumarían N finalmente, que es lo que dice la issue

TamaraCucumides commented 5 years ago

Sii, eso si. Pero en el clistered igual cuentas los datos cuando accedes a ellos (y ahi tienes que tomar en cuenta cuántos te caben por página).

Siento que quizás te estoy enredando más, pero en sintesis: Clustered: Bajar el arbl + acceder a los datos Unclustered: Bajar el árbol + acceder a los punteros + acceder a los datos