Pregunta

Estaba leyendo el artículo sobre índices en parloteo, donde se escribe que

Si un montón tiene un índice no agrupado (como la clave principal), y los datos se insertan en la tabla, deben ocurrir dos escrituras. Una escritura para insertar la fila y una escritura para actualizar el índice no agrupado. Por otro lado, si una tabla tiene un índice agrupado como clave principal, las inserciones toman solo una escritura, no dos escrituras. Esto se debe a que un índice agrupado y sus datos son uno en el mismo. Debido a esto, es más rápido insertar filas en una tabla con un índice agrupado como clave principal que insertar los mismos datos en un montón que tiene un índice no agrupado como clave principal. Esto es cierto si la clave principal está aumentando o no monotónicamente o no.

¿No está mal? El indexado clúster, el indexado naturalmente recurre a los árboles B+, donde solo las teclas se almacenan en nodos intermedios (a diferencia de los árboles B, donde se almacena todo el registro. Es por eso pero en altura más corta), por lo que todos los registros se almacenan en las páginas de Leaf (las páginas en sí se clasifican lógicamente a través de listas vinculadas, mientras que los datos en cada página se clasifican físicamente). Entonces, si se debe actualizar un registro, digamos que el valor 1 debe actualizarse a 7, ¿no se debe aplicar la actualización tanto a la clave en el nodo superior del índice agrupado (esto puede, en casos, causar una reaudación estructuración de toda la estructura) y el valor correspondiente en el registro en la página de hoja?

enter image description hereACTUALIZACIÓN: Bien, hice un estudio y descubrí que, aparte de la estructura inicial del árbol (donde algunos valores deben estar presentes dos veces, por ejemplo, los valores clave en el nodo), cuando se insertan nuevos valores, simplemente caben en la página de la hoja , mientras que el árbol se reestructura para acomodar eso. Sin embargo, cuando, digamos, se insertan 5 valores, el valor del tercer lugar puede causar que el primer valor insertado (que actualmente ocupa solo el espacio de nivel de hoja) se en cascada, lo que hace que se escriba dos veces (una vez en el nivel de la hoja, otro en el nivel de índice). Por supuesto, tales reescrituras (aunque no ocurren en el momento de la inserción, pueden ocurrir más tarde) será mucho menor en comparación con la escritura dos veces que ocurre cada El tiempo hay una inserción en un montón con NCI, pero ¿aún no está mal decir que no hay reescritura?

No hay solución correcta

Licenciado bajo: CC-BY-SA con atribución
No afiliado a dba.stackexchange
scroll top