Literalmente, significa simplemente almacenar los datos originalmente almacenados en una biblioteca en varias bibliotecas y almacenar los datos originalmente almacenados en una tabla en varias tablas.
2 ¿Por qué las ideas básicas deberían dividirse en bibliotecas y tablas?
Recuento
Según los datos de la base de datos, no es necesariamente controlable. En ausencia de subbases de datos y subtablas, con el desarrollo del tiempo y el negocio, el tablas en la base de datos Habrá cada vez más y la cantidad de datos en la tabla será cada vez mayor. En consecuencia, también aumentarán las operaciones de datos.
El costo de eliminar y modificar búsquedas también aumentará, además, dado que no se puede asignar la implementación y los recursos del servidor (CPU, disco, memoria, IO, etc.) son limitados, la cantidad final de datos. que la base de datos puede transportar,
Las capacidades de procesamiento de datos encontrarán cuellos de botella.
3 Estrategias de implementación para subbases de datos y subtablas
Existen dos tipos de subbases de datos y subtablas: división vertical y división horizontal.
3.1
¿Qué es la segmentación vertical? Significa dividir las tablas en módulos funcionales y relaciones estrechas e implementarlas en diferentes bibliotecas. Por ejemplo, estableceremos la base de datos de definición workDB, la base de datos de productos payDB y los datos del usuario.
La biblioteca userDB y la base de datos de registro logDB se utilizan para almacenar la tabla de definición de datos del proyecto, la tabla de definición del producto, la tabla de datos del usuario y la tabla de datos de registro, respectivamente.
3.2
¿Qué es la segmentación horizontal? Cuando la cantidad de datos en una tabla es demasiado grande, podemos dividir los datos en la tabla de acuerdo con ciertas reglas, como el hash de ID de usuario, y luego almacenarlos en varias tablas con la misma estructura y diferentes bibliotecas.
Vamos. Por ejemplo, las tablas de datos de usuario en nuestra userDB tienen una gran cantidad de datos, por lo que podemos dividir userDB en varias userDB con la misma estructura: parte 0 db,
Part1DB, etc. y luego divida la tabla de datos del usuario userTable en userDB en muchas userTables: userTable0, userTable1, etc.
Luego, estas tablas se almacenan en múltiples bases de datos de usuario de acuerdo con ciertas reglas.
3.3 El método que se debe utilizar para implementar subbases de datos y subtablas de bases de datos depende del cuello de botella de la cantidad de datos en la base de datos y del tipo de negocio del proyecto.
Si hay demasiadas tablas en la base de datos, la lógica empresarial del proyecto está claramente dividida y el acoplamiento es deficiente, entonces la segmentación vertical con reglas simples y fácil implementación debe ser la primera opción.
Pero
Si no hay muchas tablas en la base de datos, pero la cantidad de datos en una sola tabla es grande o los datos son relativamente calientes, en este caso, la segmentación horizontal debería ser seleccionado. La división horizontal es más complicada que la división vertical y lógicamente pertenecerá a una.
Además de evaluar la granularidad de la segmentación, considerar el promedio de datos y el promedio de carga también traerá una carga adicional de administración de datos para el personal y las aplicaciones del proyecto en la etapa posterior.
En proyectos reales, a menudo se dan ambas situaciones, que requieren compensaciones, incluso divisiones verticales y horizontales. Nuestro proyecto de juego utiliza una combinación de segmentación vertical y horizontal. Primero segmentamos la base de datos verticalmente y luego segmentamos horizontalmente algunas tablas, generalmente las tablas de datos del usuario.
4. Problemas con subbases de datos y subtablas.
4.1 Problemas de transacción.
Una vez implementadas la subbase de datos y la subtabla, la gestión de transacciones de la base de datos es más difícil porque los datos se almacenan en diferentes bases de datos. Si confía en la función de gestión de transacciones distribuidas de la propia base de datos para ejecutar transacciones, pagará un alto precio de rendimiento; si la aplicación ayuda al control, formará transacciones lógicas del programa y también provocará una carga de programación;
4.2 Problemas de conexión entre bases de datos y tablas.
Después de implementar la subbase de datos y la subtabla, es difícil evitar dividir datos con una fuerte correlación lógica en diferentes tablas y diferentes bibliotecas. En este momento, la operación de asociación de la tabla estará restringida. Las tablas ubicadas en diferentes subbases de datos no se pueden conectar, ni se pueden conectar tablas de diferente granularidad. Por lo tanto, un negocio que se puede completar con una consulta puede requerir varias consultas.
4.3 Carga adicional de gestión de datos y presión de operación de datos.
Um
La carga de la gestión de datos externos, más obviamente el problema de la ubicación de los datos y la adición, eliminación y consulta repetidas de datos, puede resolverse mediante aplicaciones, pero inevitablemente esto conducirá a Operaciones lógicas adicionales, por ejemplo, para una tabla de usuario userTable que registra el rendimiento del usuario, el negocio requiere encontrar los mejores 100 dígitos y solo se necesita un orden antes de dividir la tabla.
La declaración By se puede completar, pero después de dividir la tabla, se requieren N pedidos.
Utilice declaraciones para encontrar los primeros 100 datos de usuario de cada subtabla y luego combine estos datos para obtener el resultado.