Una guía completa de subbases de datos y tablas MySQL: ¡una guía avanzada desde principiante hasta maestro!

Hola a todos, soy Xiaomi, un programador amante de la tecnología. Hoy les hablaré sobre la tecnología de subbases de datos y subtablas en MySQL, creo que es un tema muy importante para desarrolladores y DBA.

 

¿Qué es una subbiblioteca y una subtabla?

Primero, primero comprendamos qué son la subbase de datos y la subtabla. La fragmentación de bases de datos y tablas se refiere a dividir los datos originalmente almacenados en una única base de datos en varias bases de datos o varias tablas de datos . El propósito de esto es mejorar la escalabilidad y el rendimiento de la base de datos y resolver el cuello de botella de una sola base de datos en términos de volumen de datos y acceso concurrente.

¿Por qué necesitamos subbases de datos y subtablas?

Entonces, ¿por qué necesitamos subbases de datos y tablas? Existen principalmente las siguientes razones:

  • En primer lugar, a medida que el negocio se desarrolla y la cantidad de datos sigue creciendo, es posible que la capacidad de almacenamiento de una sola base de datos no pueda satisfacer la demanda. En este momento, los datos se pueden distribuir en múltiples bases de datos a través de subbases de datos para mejorar la capacidad de almacenamiento de todo el sistema.
  • En segundo lugar, el alto acceso simultáneo también es una cuestión que debe tenerse en cuenta. Cuando la cantidad de acceso es demasiado grande, es posible que una sola base de datos no pueda manejar tantas solicitudes simultáneas. Mediante la división de tablas, los datos se pueden dividir en varias tablas de acuerdo con ciertas reglas para lograr una distribución equilibrada de solicitudes simultáneas y mejorar las capacidades de procesamiento simultáneo del sistema.

Subbiblioteca horizontal

La fragmentación horizontal consiste en dispersar datos en varias bases de datos de acuerdo con ciertas reglas. Las reglas comunes incluyen el valor hash de los datos, según el rango de tiempo o según las dimensiones comerciales, etc. Mediante la fragmentación horizontal, los datos se pueden dispersar en diferentes instancias de bases de datos para lograr la descarga de datos y el equilibrio de carga.

Tomemos como ejemplo un proyecto de comercio electrónico para ilustrar el concepto de fragmentación horizontal. Supongamos que nuestro sistema de comercio electrónico tiene miles de productos y cada producto tiene una gran cantidad de datos de pedidos. Podemos almacenar productos en diferentes rangos en diferentes bases de datos según el rango de ID de producto. Por ejemplo, los ID de producto están limitados a 10,000, los productos menores de 10,000 se almacenan en la base de datos A y los productos mayores de 10,000 se almacenan en la base de datos B. De esta manera, cada base de datos solo necesita procesar una parte de los datos del producto, lo que mejora la capacidad de procesamiento concurrente de la base de datos.

tabla de puntuación de nivel

La fragmentación horizontal de tablas consiste en dispersar datos en diferentes tablas en la misma base de datos de acuerdo con ciertas reglas. Este método es adecuado para situaciones en las que la cantidad de datos en una sola tabla es demasiado grande, lo que resulta en un rendimiento reducido de consultas y escritura. Mediante la fragmentación horizontal de tablas, los datos se pueden dispersar en diferentes tablas para mejorar el rendimiento de las consultas y la velocidad de escritura.

Echemos un vistazo a la aplicación de subtablas horizontales. En proyectos de comercio electrónico, podemos dividir la tabla de pedidos en tablas según la dimensión temporal. Por ejemplo, los datos del pedido de cada mes se almacenan en una tabla separada, como order_202101, order_202102, etc. De esta forma, la cantidad de datos en cada tabla es relativamente pequeña, las operaciones de consulta y actualización se pueden realizar más rápidamente y se mejora la velocidad de respuesta del sistema.

Subbiblioteca vertical

La fragmentación vertical consiste en dispersar datos en diferentes bases de datos según las funciones comerciales. Pueden existir diferentes funciones comerciales de forma independiente en diferentes bases de datos, lo que hace que cada negocio sea independiente entre sí y reduce la asociación y dependencia entre bases de datos.

Además de la división horizontal, también podemos considerar la división vertical. En proyectos de comercio electrónico, la información del producto y la información del pedido son dos módulos independientes, y sus modos de acceso y características de los datos pueden ser diferentes. Podemos almacenar información del producto en una base de datos separada e información del pedido en otra base de datos separada. De esta forma los accesos entre diferentes bases de datos no se afectarán entre sí, mejorando el rendimiento general del sistema.

mesa vertical

La división vertical de tablas consiste en dividir una sola tabla según las características de las columnas. Dividir las columnas de una tabla según funciones comerciales o frecuencias de acceso reduce la cantidad de columnas en cada tabla y mejora el rendimiento de las consultas y la eficiencia del almacenamiento.

En un proyecto de comercio electrónico, la tabla de información del producto puede contener una gran cantidad de campos y algunos campos se actualizan con menos frecuencia, mientras que otros campos se actualizan con más frecuencia. Podemos dividir la tabla verticalmente según la frecuencia de actualización de los campos y dividir los campos con menor frecuencia de actualización en tablas independientes. Por ejemplo, almacene la información básica y la información de descripción del producto en una tabla y almacene la información de inventario y la información de precios en otra tabla. De esta manera, se puede reducir el bloqueo de toda la tabla mediante campos actualizados con frecuencia y se puede mejorar el rendimiento de concurrencia del sistema.

Middleware que soporta subbases de datos y tablas.

En aplicaciones prácticas, podemos utilizar algún middleware para realizar las funciones de subbase de datos y subtabla. Los más utilizados incluyen ShardingSphere, MyCat, Vitess, etc. Este middleware puede analizar y reescribir SQL, enrutar datos a la base de datos o tabla de datos correcta, ocultar los detalles de subbases de datos y tablas y proporcionar interfaces y herramientas de administración convenientes.

Principios seguidos por subbase de datos y subtabla

Hay algunos principios que se deben seguir al fragmentar bases de datos y tablas. A continuación se muestran algunos principios que he resumido, tomando como ejemplo los proyectos de comercio electrónico:

  1. Segmentado según escenarios de negocio. Por ejemplo, divida la información del producto y la información del pedido en diferentes bases de datos.
  2. Evite transacciones entre bases de datos. Por ejemplo, al realizar un pedido, debe operar el inventario de productos y la tabla de pedidos al mismo tiempo. Puede redundar la información del inventario de productos en la tabla de pedidos para evitar la sobrecarga de las transacciones entre bases de datos.
  3. Evite las operaciones de unión entre bases de datos . Por ejemplo, al consultar pedidos, intente evitar operaciones de unión entre varias tablas. Puede reducir la posibilidad de uniones entre bases de datos mediante datos redundantes o agrupación de tablas.
  4. Divida razonablemente el rango de datos. Por ejemplo, la base de datos se divide según el rango de ID de producto y la tabla de datos se divide según la dimensión de tiempo.
  5. Elija sabiamente su clave de fragmento. La selección de claves de fragmentos es fundamental y debe seleccionarse en función de las características de los datos y el modo de consulta para evitar sesgos de datos y problemas de puntos de acceso.
  6. Planifique su índice correctamente. De acuerdo con el escenario de consulta y las reglas de distribución de datos, seleccione una estrategia de índice adecuada para mejorar la eficiencia de la consulta.
  7. Asigne adecuadamente los recursos de hardware. La subbase de datos y la subtabla aumentarán el consumo de recursos de hardware del sistema y deben configurarse razonablemente de acuerdo con la situación real para garantizar el rendimiento y la estabilidad del sistema.
  8. Mantenimiento y seguimiento periódicos. Una vez que la base de datos se divide en tablas, se requiere mantenimiento y monitoreo regulares para detectar y resolver problemas de manera oportuna para garantizar el funcionamiento estable del sistema.
  9. Expansión y migración flexibles. De acuerdo con el desarrollo del negocio, la base de datos y las tablas de datos deben expandirse y migrarse de manera flexible para garantizar la escalabilidad del sistema.
  10. Estrategia de respaldo y recuperación. Después de fragmentar la base de datos y las tablas, las estrategias de respaldo y recuperación también deben ajustarse en consecuencia para garantizar la seguridad y confiabilidad de los datos.

sugerencia

Finalmente me gustaría darte algunas sugerencias:

  • Intenta no cortarlo si es posible. La fragmentación de bases de datos y tablas aumentará la complejidad y los costos de mantenimiento del sistema. La fragmentación de bases de datos y tablas solo debe considerarse cuando la cantidad de datos y el acceso concurrente alcancen un cierto nivel.
  • Si desea segmentar, debe elegir reglas de segmentación adecuadas y planificar con anticipación. Según las características y necesidades del negocio, seleccione reglas de segmentación adecuadas para evitar ajustes y cambios posteriores.
  • La segmentación de datos debe intentar reducir la posibilidad de que falle la unión a la base de datos mediante la redundancia de datos o la agrupación de tablas. Para evitar operaciones frecuentes de unión entre bases de datos, puede reducir la posibilidad de unión entre bases de datos mediante datos redundantes o agrupación de tablas.
  • Dado que es difícil para el middleware de la base de datos comprender las ventajas y desventajas de la implementación de la unión de datos, y es extremadamente difícil lograr un alto rendimiento, las lecturas comerciales deben utilizar la unión de múltiples tablas lo menos posible y hasta tres tablas para consultas relacionadas. Reducir la frecuencia de las operaciones de unión de varias tablas puede mejorar el rendimiento de las consultas del sistema.

FIN

Espero que el contenido anterior sea útil para que todos comprendan la tecnología de tablas y subbases de datos MySQL. La fragmentación de bases de datos y tablas de MySQL es una tecnología compleja e importante que, en aplicaciones prácticas, debe diseñarse y ajustarse razonablemente en función de las necesidades comerciales y las condiciones reales. Si tiene alguna pregunta, déjela en el área de comentarios y haré todo lo posible para responderla. ¡gracias por su apoyo!

Si tiene alguna pregunta o comparte más aspectos técnicos, siga mi cuenta pública de WeChat " Sepa qué es y por qué ".

 

Supongo que te gusta

Origin blog.csdn.net/en_joker/article/details/131111570
Recomendado
Clasificación