Apenas sub-banco de dados e subtabela são necessários para otimização de dados de nível de cem milhões

1. Quantas linhas de uma única tabela são adequadas para a subtabela do sub-banco de dados?

Quando o número de linhas em uma única tabela excede 5 milhões de linhas ou quando a capacidade de uma única tabela excede 2 GB, é recomendado usar uma subtabela de banco de dados.

Se a quantidade de dados no projeto deve atingir esse nível por mais de três anos, não divida o banco de dados e as tabelas ao criar as tabelas.

Aprenda a especificação Ali Java

2. Os benefícios do sub-banco de dados e subtabela

  • Melhore a eficiência da consulta
  • Reduza a pressão do banco de dados
  • Alta disponibilidade: há um problema com um banco de dados, outras empresas não serão afetadas

3. Como dividir os dados do sub-banco de dados e da subtabela?

  • Divisão vertical: dividida em diferentes bibliotecas, a estrutura de dados das tabelas na biblioteca são diferentes
  • Divisão horizontal: dividida em diferentes bibliotecas, a estrutura de dados das tabelas na biblioteca é a mesma

4. Problemas e soluções trazidos pelo sub-banco de dados e subtabela

1. Problemas causados ​​pela subtabela vertical do sub-banco de dados: consulta associada e transação distribuída

Soluções de consulta relevantes:
①Redundância: tente evitar consultas relacionadas por meio de redundância de campo.
② Sincronização de dados: sincronize os dados da tabela de outra biblioteca para esta biblioteca por meio de MQ; dblink, ETL (sincronize os dados da tabela por meio de tarefas de temporização, baixo desempenho em tempo real)
tableTabela de broadcast: cada biblioteca tem uma mesma tabela, e os dados na tabela são consistentes
④No código: consulte os dados nas tabelas em cada biblioteca e, em seguida, classifique-os no código na memória. Precisamos de dados
⑤ tente ter um negócio tabela de associação em uma biblioteca

Idéias para soluções de transações distribuídas:
estruturas distribuídas como seata, tcc, etc. resolvem o problema de transações distribuídas, mas o uso de transações distribuídas diminuirá a eficiência, o que é inevitável.

Os microsserviços são, na verdade, sub-bancos de dados verticais

2. Problemas causados ​​pela divisão horizontal: consulta de paginação, ID global, distribuição uniforme de
soluções de consulta de paginação de dados :
① Se a quantidade de dados for grande, você pode ter uma tabela por mês, ou mesmo uma tabela por semana, ao consultar Somente suporte para verificar os dados de um determinado mês
② Classifique os dados no código

Idéias de solução de ID global:
①UUID ②
Algoritmo do Snowflake

Dados uniformemente distribuídos:
① hash% módulo
② aleatório
③ intervalo: 0-1 cem milhões em uma tabela de dados, os dados em outra tabela 1-2 cem milhões, 200-300 milhões em outra tabela de dados
④ tempo: mensal, semanal. ..
⑤ Por região, os dados gerados na mesma região estão em uma tabela
⑥ Algoritmo composto: intervalo módulo módulo intervalo
⑦ enumeração: masculino feminino

Acho que você gosta

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