Solo la subbase de datos y la subtabla son necesarias para la optimización de datos de cien millones de niveles

1. ¿Cuántas filas de una sola tabla son adecuadas para la subtabla de la subbase de datos?

Cuando el número de filas en una sola tabla excede los 5 millones de filas o cuando la capacidad de una sola tabla excede los 2GB, se recomienda utilizar la subtabla de la subbase de datos.

Si se espera que la cantidad de datos del proyecto alcance este nivel durante más de tres años, no divida la base de datos y las tablas al crear las tablas.

Aprenda la especificación de Ali Java

2. Los beneficios de la subbase de datos y la subtabla

  • Mejorar la eficiencia de las consultas
  • Reducir la presión de la base de datos
  • Alta disponibilidad: hay un problema con una base de datos, otras empresas no se verán afectadas

3. ¿Cómo dividir la subbase de datos y los datos de la subtabla?

  • División vertical: dividida en diferentes bibliotecas, la estructura de datos de las tablas en la biblioteca es diferente
  • División horizontal: dividida en diferentes bibliotecas, la estructura de datos de las tablas en la biblioteca es la misma

4. Problemas y soluciones aportados por la subbase de datos y la subtabla

1. Problemas causados ​​por la subtabla de la subbase de datos vertical: consulta asociada y transacción distribuida

Soluciones de consulta relevantes:
①Redundancia: intente evitar consultas relacionadas a través de la redundancia de campo.
②Sincronización de datos: sincronice los datos de la tabla de otra biblioteca a esta biblioteca a través de MQ; dblink, ETL (sincronice los datos de la tabla a través de tareas de temporización, bajo rendimiento en tiempo real)
tableTabla de transmisión: cada biblioteca tiene la misma tabla y los datos de la tabla son consistentes
④En el código: consulta los datos en las tablas de cada biblioteca y luego clasifícalos en el código de la memoria. Necesitamos datos
⑤ intenta tener un negocio tabla de asociación en una biblioteca

Ideas de soluciones de transacciones distribuidas: los
marcos distribuidos como seata, tcc, etc. resuelven el problema de las transacciones distribuidas, pero el uso de transacciones distribuidas ralentizará la eficiencia, lo cual es inevitable.

Los microservicios son en realidad sub-bases de datos verticales

2. Problemas causados ​​por la división horizontal: consulta de paginación, ID global, distribución uniforme de datos.
Soluciones de consulta de paginación:
① Si la cantidad de datos es grande, puede tener una tabla por mes, o incluso una tabla por semana, al consultar Solo soporte para comprobar los datos de un mes determinado
② Ordenar los datos en el código

Ideas de soluciones de identificación global:
①UUID ②
Algoritmo de copo de nieve

Datos distribuidos uniformemente:
①% módulo ①
aleatorio
③ rango: 0-1 cien millones en una tabla de datos, los datos en otra tabla 1-2 cien millones, 200-300 millones en otra tabla de datos
④ tiempo: mensual, semanal. ..
⑤ Por región, los datos generados en la misma región están en una tabla
⑥ Algoritmo compuesto: rango módulo módulo rango
⑦ enumeración: macho hembra

Supongo que te gusta

Origin blog.csdn.net/RookiexiaoMu_a/article/details/106630959
Recomendado
Clasificación