Antes de decidir, considere lo siguiente: un nodo de árbol AVL en disco:
Nodo de estructura pública
{
Izquierda pública larga;
derecho público largo;
padre largo público;
Cálculo público. Balance Estatal;
clave larga pública;
Nodo público (largo p)
{
Izquierda = 0;
Derecha = 0;
Padre = p;
Balance = Calculus.State.Balanced;
Clave = 0;
}
- ¿La independencia de un teorema de un sistema formal también implica que agregarlo como axioma hace que el sistema no sea más poderoso?
- ¿Qué grado es más fácil de obtener si eres débil en matemáticas: ingeniería de software o informática?
- ¿Por qué es importante el estudio de la inestabilidad hidrodinámica? ¿Cuáles son las aplicaciones?
- ¿Hubo alguna vez un estudiante que descubriera que Math 55 en Harvard era fácil o incluso trivial?
- ¿Es mejor no molestarse en memorizar fórmulas en matemáticas sino en derivarlo de lo que ya sé?
público bool IsHeader
{get {return Balance == Calculus.State.Header; }}
}
enumeración pública Estado: largo
{
Encabezado = 0,
LeftHigh,
Equilibrado,
Derecha Alto
}
Armados solo con esta información, estamos en condiciones de determinar mucho. Por ejemplo, observe que Node está todo en binario y que los datos son solo un desplazamiento de enteros en otro archivo (el archivo de datos). Dado que los nodos son de un tamaño fijo, es posible actualizar un nodo con bastante facilidad. Con estas declaraciones, puede continuar elaborando bases de datos AVL completamente elaboradas. Los algoritmos de equilibrio AVL atraviesan el árbol de abajo hacia arriba, realizando rotaciones según sea necesario (y el archivo de datos se deja intacto). Esto es altamente eficiente y representa la solución ideal óptima.
Contraste esto con B y B + Árboles. Para empezar, los árboles B son incompetentes porque no pueden ser iterados. Los árboles B y B + almacenan varias claves en un nodo (que es el hack) para facilitar el acceso rápido a una unidad de disco duro. Por lo tanto, los nodos deben ser serializados y deserializados (porque eso es lo que requieren las claves, en el caso general). Esto significa que los nodos son de tamaño variable y no se pueden actualizar fácilmente, una pesadilla de programación. El diseño ha destruido toda la naturaleza del bloque fijo del árbol. En consecuencia, los árboles B y B + producen código feo y pirateado debido al diseño original de un nodo.
Con la llegada de las unidades de estado sólido, las bases de datos AVL se ejecutan a alta velocidad, aproximadamente 1700 transacciones / segundo. Entonces, saltar alrededor del árbol (de ahí la unidad) no es un problema. Esto se debe a que no hay tiempos de búsqueda y latencia en un SSD. Entonces, lo más obvio es volver a la solución original y mejor: AVL Trees. Deseche las claves múltiples por diseño de nodo y vuelva a ninguna clave por nodo como en AVL Trees. En otras palabras, deshazte de los hacks B y B + Tree.