"Java entrevista -Oferta demostrar seguridad de los trenes", señala el estudio de vídeo - Base de Datos

base de datos

En primer lugar, cómo diseñar una base de datos relacional?

Base de datos función principal es almacenar datos, por lo que hay un módulo de almacenamiento para almacenar datos. módulos de memoria similares del sistema de archivos del sistema operativo, los datos almacenados en el disco persistente, tales como un disco duro en un mecánicas duros, de estado sólido de la SSD, también una matriz de discos o de la matriz de los mismos.

Pero sólo la memoria no es suficiente, sino también el tejido y utilizar estos datos, hay una necesidad instancia del programa , usando la estructura lógica para mapear la estructura física, y proporcionar una manera de acceder y gestionar los datos en el programa, así como proporcionar el problema de seguimiento necesario el mecanismo.

módulos del programa Barrio:

1) convertir la lógica de datos a la relación de almacenamiento físico módulo de gestión de almacenamiento: En primer lugar, la gestión de datos de formato de partición y archivo unificada, es decir, los datos físicos representados en la forma de lógica tejido, se refiere a un programa de gestión de almacenamiento módulo. (Rendimiento del almacenamiento Optimizar: no procesan los datos en el disco, pero el espacio donde el programa se carga en memoria, la tasa de IO de disco es un cuello de botella importante en la tasa de ejecución del programa, mucho peor que la eficiencia de la memoria con el fin de realizar de manera eficiente, para reducir el IO como sea posible. . en términos de gestión de almacenamiento, si encuentra y regreso en la eficiencia progresiva, lenta frecuentes IO provoca que la base de datos, ya que una sola IO leer los datos y una pluralidad de datos no hay mucha diferencia, para que pueda leer una sola vez multilínea, con el fin de mejorar la eficacia de IO la línea perderá su importancia, los bloques de datos y páginas como una unidad lógica de almacenamiento, y cada páginas de bloqueo almacenado en varias filas de datos, al leer varios bloques y páginas cargadas en la memoria .)

2) la optimización de la eficiencia del módulo de memoria caché: Con el fin de optimizar el más rápido y mejor el uso de la memoria, puede utilizar el mecanismo de almacenamiento en caché , sacado de los bloques en la caché, la próxima vez que necesite para volver directamente desde la memoria, sin IO producirse. La carga desechable múltiples módulos o páginas, filas de bloque de datos contiene los datos pueden no estar en esta línea de investigación que necesitamos, pero una vez que se accede a una fila de datos, los datos alrededor de él también es muy probable que la experiencia que se tiene acceso, caché los datos no esenciales también pueden desempeñar un papel en la optimización de la eficacia del acceso, mejorar el acceso rendimiento. métodos de gestión de caché LRU y así sucesivamente.

3) instrucción SQL analiza módulo de análisis sintáctico de SQL: proporcionar un comando externo para manipular los datos, puede ser leído por el lenguaje SQL, requiere analizar SQL módulo analiza el compilador de SQL, se convierte en instrucciones legibles por máquina. En este momento con el fin de mejorar aún más la eficiencia de SQL, SQL caché del búfer para resolver directamente. Caché no debe ser demasiado grande, y hay algoritmos en el mecanismo de eliminación, no eliminadas después de datos comunes.

4) El módulo de gestión de registro de la operación: operación de SQL requiere base de datos maestra grabada para facilitar la recuperación de un desastre, o la sincronización, lo que requiere la gestión de registro de la operación será registrado como modo de grabación binlog.

5) división módulo de gestión multi-usuario de la autoridad: también es necesario proporcionar la privacidad de los datos de gestión de usuarios, es decir, la división de la autoridad . Popular es el jefe puede ver los datos de los empleados, el empleado sólo puede ver los datos que ven. La división de la autoridad es un DBA hacer.

6) Módulo de recuperación de desastres: además de considerar las circunstancias normales, es necesario tener en cuenta las circunstancias inusuales, la necesidad de introducir un mecanismo de excepción, es decir, los mecanismos de recuperación de desastres . Cuando la base de datos se colgó sobre cómo restaurar, recuperar y en qué medida.

7) optimizar la eficiencia de la consulta de datos y el módulo de indexación permite la base de datos para apoyar la operación simultánea del módulo de bloqueo: Para mejorar aún más la velocidad de las consultas de datos y para permitir el soporte de base de datos concurrentes, es necesario introducir la indexación y de bloqueo módulos.

 

En segundo lugar, el módulo de índice

  • ¿Por qué utilizar un índice?

datos de consulta rápida

(La forma más fácil para lograr consulta de datos, es decir, un escaneo completo de tabla, todos los datos de una tabla entera o lotes se carga en la memoria. Unidad mínima de almacenamiento es un bloque o una página, que se componen de una pluralidad de líneas de datos. El bloque de carga entrar, bloque por sondeo, encontrar el destino y regreso. de esta manera generalmente más lento. en muchos casos deben evitar el caso escaneo completo de tabla, la base de datos para introducir mecanismos más eficientes, es decir, la información de clave de índice y encontrar información de la forma la composición del índice, puede mejorar significativamente consulta velocidad a través del índice.)

  • ¿Qué tipo de información puede convertirse en un índice?

clave primaria, clave única, clave común

(Definido en el campo de grabación dentro de un cierto rango de encontrar la llave maestra es un buen punto de partida, la otra que comprende una clave única, y similares se puede utilizar como un índice de clave común.)

  • Índice de estructura de datos?

Generar el índice, el establecimiento de un árbol binario de búsqueda es una búsqueda binaria.

Generar el índice, el establecimiento de la estructura de árbol B de averiguarlo.

Generar el índice, el establecimiento de B + Estructura -Árbol de averiguarlo.

Generar el índice, el establecimiento de la estructura de hash de averiguarlo.

(Preguntas desarrollan convierten en estructuras de datos eficientes, tales como variantes equilibrado de árboles binarios árboles de búsqueda binaria y árboles binarios de búsqueda, árbol rojo-negro, BTree, B + Árbol y el índice de hash es una estructura de base de datos .MySQL por aplicación B + árbol).

 

En tercer lugar, el índice de optimización

  • Utilizar un árbol de búsqueda binaria

Árbol binario de búsqueda es una estructura de árbol, cada nodo tiene como máximo dos sub-árboles, por lo general sub-árbol se llama el subárbol izquierdo y subárbol derecho. Los valores subárbol izquierdo son menos que el nodo raíz, el valor del subárbol derecho son mayores que el nodo raíz (o unidad más pequeña de bloque de almacenamiento y la página de bloque de memoria Tenga en cuenta que la base de datos de índice no es uno a uno, el primero en marcha para facilitar la comprensión) . Cada memoria almacena un puntero de bloque que apunta a las palabras clave y el subárbol. Equilibrado binaria cualquier subárbol izquierdo de un nodo y el hijo derecho no supere el número de altura 1

Tiempo de consulta complejidad de O (log n), de alta eficiencia de la consulta. Los casos extremos (todos los nodos en el subárbol izquierdo o derecho del subárbol) complejidad del tiempo será O (n). Árbol puede ser utilizado para mantener la característica de rotación del árbol binario equilibrado. Pero hay otro problema que afecta a la velocidad de marcha del cuello de botella está IO. Si se supone que los bloques de índice en el disco, buscando el índice primero se llevará a cabo una vez IO, los datos se lee en la memoria, después de la IO vuelva a suceder continuar la búsqueda hasta que encuentre. Recuperando la profundidad de cada adicional 1, se produce una vez IO. Cada árbol AVL nodo, árboles rojo-negro sólo puede tener dos hijos. Con el fin de organizar los bloques de datos, la profundidad de un árbol de profundidad, el número de IO serán muchos, optimizar el rendimiento de la recuperación de consulta no puede satisfacer la demanda.

Es decir, para reducir la complejidad de tiempo de consulta, y reducir el número de IO, vamos a cada nodo del árbol se puede permitir más datos, es decir, el uso de B-árbol, árbol B +.

  • El uso de un árbol B

Árbol B , ese equilibrio múltiple árbol de búsqueda. Cada nodo tiene niños de hasta m, m es el orden de dicho árbol de B-árbol. Cada bloque de memoria que comprende predominantemente palabras clave y punteros Niño apuntando, hasta varios niños dependiendo de la capacidad de configuración y la base de datos de cada bloque de memoria (por lo general m es grande).

características de árbol B:

1) el nodo raíz incluye al menos dos hijos.

2) Cada nodo en el árbol contiene hasta niños m (m> = 2).

3) Además de los nodos nodo raíz y hoja, cada nodo tiene al menos ceil (m / 2) niños. redondeo ceil

4) todos los nodos hoja en el mismo nivel.

5) Suponiendo que cada nodo no terminal n contiene información palabras clave, en donde:

    a) Ki (i = 1 ... n) como palabra clave, y la palabra clave orden ascendente tipo K (i-1) <K (i).

    b) el número n debe satisfacer las palabras clave: [ceil (m / 2) -1] <= n <= m-1. (Límite superior del número de palabras clave cualquier nodo que su número límite superior al menos un niño, y para los nodos que no son hojas, cualquier número de una clave de nodo es uno menos que el número de punteros a niño)

    nodos Pointer c) que no son hojas de: P [1], P [2] ... P [M], donde P [1] clave es más pequeño que el punto K [1] del subárbol (nodo hijo de una clave de nodo más a la izquierda los valores son menores que el valor de la clave del nodo más a la izquierda), P [M] tecla del punto es mayor que K [M-1] subárboles (valor de palabra clave de nodo más a la derecha hijo de un nodo en el nodo son todos mayor que el crítico el valor de la palabra), el otro P [i] punto a la palabra clave pertenece (K [i-1], K [i]) de la sub-árbol (valor de tamaño de clave de nodo hijo restante se encuentra en un nodo del puntero nodo hijo de la más cercana entre dos valores de clave).

Encuentra y eficiencia como un árbol de búsqueda binaria, es O (log n). B-tree por fusión, escisión, se mueve hacia arriba, abajo nodo mantiene en el que el árbol binario más corto que, los datos después de que el cambio no se convierte en lineal.

Ejemplo B-árbol:

  • Utilice un árbol B +

B + Tree es una variante de la B-árbol, el árbol B se define sustancialmente la misma, excepto que:

1) puntero subárbol para el número de nodos que no son hojas de la misma clave. (B + árbol puede almacenar más palabras clave)

nodos subárbol puntero 2) que no son hojas de la P [i], señalando el valor de la clave (K [i], K [i 1 +]) subárboles. (K [i] punto a subárboles son menos que el valor de la clave K [i + 1]) de

3) sólo el índice para los nodos que no son hojas, los datos se almacenan en los nodos hoja. (Todo el árbol B + se recupera de la raíz, nodos hoja recuperados al final, sólo los nodos que no son hojas no almacenan el almacenamiento de datos de índice, puede almacenar más datos .B B + Árbol relativamente más corto árbol de búsqueda .B puede ser cualquier un nodo no hoja para terminar fuera.)

4) todo nodo hoja tiene un puntero a una cadena de orden prensa de enlace de nodo hoja. (Rango Soporte de estadísticas, que se dirigen a un nodo hoja puede iniciar una estadística transversal-sub-árbol de los nodos hoja.)

Ejemplo B + del árbol:

índice de árbol B + es más adecuado utilizar para almacenar:

1) B + árbol de reducir el costo de las lecturas del disco (B + estructura de árbol no es un puntero a una información clave específica interna, no almacena datos, la tienda solamente la información del índice. B-árbol de nodos relativamente más pequeño interna, si todos los nodos interiores de la llave almacenado en el mismo bloque de disco, el número de bloque de disco de palabras clave también puede acomodar más tiempo en la memoria para encontrar las palabras clave más, un número relativamente bajo de escritura IO).

2) la eficiencia B + consulta árbol es más estable (nodo interno no es un nodo al contenido del archivo, sólo una palabra clave nodos hoja del índice de cualquier nodo debe tener una mirada desde el nudo de la hoja a la longitud de la trayectoria de la raíz de todas las consultas de palabras clave idénticos, cada tiempo de consulta de datos, O (log n)).

3) B + árbol es más propicio para escanear la base de datos (B + árbol sólo necesitará nodo de hoja de desplazamiento se puede resolver la exploración de todos los datos).

 

Publicado 22 artículos originales · ganado elogios 7 · vistas 4471

Supongo que te gusta

Origin blog.csdn.net/lucky_jiexia/article/details/105356483
Recomendado
Clasificación