Entrevista pede ao MyCat que leia este artigo é suficiente

1. As vantagens e desvantagens do uso de índices?

O índice pode localizar a página do livro rapidamente, como o diretório do
livro.Vantagens: melhorar a eficiência da consulta.Se não houver índice, a tabela do banco de dados executará uma verificação completa da
tabela.Desvantagens: inserção lenta, ocupando espaço no disco rígido

2. Qual é a diferença entre a árvore Myisam e Innodb B +?

Myisam Innodb
Nó folha Valor armazena o endereço de dados, consulta dados por endereço O valor armazena dados
Vantagem É mais rápido ao criar um índice Os dados da consulta são mais rápidos
Desvantagens Os dados da consulta estão lentos A criação do índice é lenta

3. Qual é a diferença entre nós foliares e não foliares na árvore B +?

Nó folha Nó não folha
Diferença Existem chave e valor Somente chave

4. Comparação dos quatro métodos de indexação no MySQL

Cerquilha Árvore binária equilibrada AVL Árvore B Árvore B +
Vantagem A velocidade da consulta é muito rápida, de acordo com o algoritmo de hash Alta eficiência de consulta Os nós podem armazenar vários dados, reduzindo a altura da árvore e o número de E / S, a eficiência da consulta é melhor Herdando as características da árvore B, há mais nós foliares e não foliares, a ordem é armazenada entre nós foliares, a eficiência da consulta é rápida e a consulta de intervalo também é rápida
Desvantagens O armazenamento de dados está com defeito e a consulta de intervalo não pode ser executada Pode variar de consulta, mas precisa manobrar, a eficiência é muito baixa Consulta de faixa de suporte, ele também irá manobrar, e a eficiência não é alta Como existem dados de nó redundantes, eles ocuparão o tamanho do disco rígido, mas as vantagens são muito maiores que as desvantagens

Cinco, princípio de replicação mestre-escravo do MySQL

Insira a descrição da imagem aqui

Seis, princípio de cluster fragmentado do MySQL

Insira a descrição da imagem aqui

7. Como o cluster fragmentado do MySQL garante IDs exclusivos?

1. UUID: sem aumento automático
2. Algoritmo de floco de neve: sem aumento automático
3. Defina o tamanho da etapa: o valor inicial e o tamanho da etapa devem ser definidos no início, o valor inicial é 1, 2, 3 ... o tamanho da etapa é dividido Número de comprimidos

8. Introdução ao MyCat

A estrutura de código-fonte aberto do Alibaba , um
banco de dados real de proxy reverso escrito em linguagem java.
Separação de leitura e gravação: implemente a interface routingDatasource, configure fonte de dados dinâmica, use aop para distinguir operações de leitura e gravação.
Cluster de compartilhamento : divida tabelas de banco de dados horizontalmente

O Mycat possui três arquivos de configuração:
1. server.xml: arquivo de configuração Mycat, senha da conta de configuração etc.
2. schema.xml: banco de dados físico Myvat correspondente e configuração da tabela de banco de dados
3. rule.xml: fragmento Mycat Tabela) Regras

Nove, a diferença entre divisão horizontal e divisão vertical

Divisão vertical: por exemplo, o serviço do membro corresponde ao banco de dados do membro e o serviço WeChat corresponde ao banco de dados do WeChat Desvantagens: precisa se comunicar através da interface, não é possível atravessar a biblioteca, verifique
a divisão horizontal: uma tabela armazenada em vários bancos de dados, como 6 , 3 bancos de dados, cada banco de dados armazena 2 dados, usando o middleware mycat para encontrar os dados das três bibliotecas ao mesmo tempo, faça o molde para armazenar os dados

10. Qual é a diferença entre múltiplas fontes de dados e dinâmicas?

Fonte de dados múltiplos: formulário de subcontratação
Fonte de dados dinâmica: os dados dinâmicos são constantemente alternados na jvm

11. Princípio de comutação da fonte de dados dinâmica SpringBoot

Processo:
1. Use AOP para determinar o prefixo do método da camada de lógica de negócios.Se o prefixo for selecionar, obter, localizar etc., findUser
2. Se for uma operação de gravação, uma chave será passada para RoutingDataSource

Configuração:
1. Crie uma fonte de dados para leitura e gravação
2. Registre a fonte de dados no RoutingDataSource
3. Use apenas a tecnologia AOP para interceptar o método da camada de lógica de negócios e determinar se o prefixo do método precisa ser lido ou gravado

Nota:
1. A fonte de dados é colocada no RoutingDataSource na forma de Mapa
2. Use a anotação Pedido (0) para executar aop antes da transação

12. Mycat alcança 9 estratégias para sharding horizontal

1. Região: julgando a região pelos parâmetros passados ​​pelo cliente, enumerando algoritmos, enumerando arquivos
2. Módulo: de acordo com o número de id% de clusters de banco de dados

13. Como o Mycat consulta todos os dados após sub-tabela e sub-banco de dados?

Converter selecionar * do usuário
para
selecionar * do db1_user
selecionar * do db2_user
selecionar * do db3_user
três consultas

Se houver um caso em que id = 1, apenas uma instrução de consulta precisará ser enviada. Como 1% 3 = 1, verifique diretamente no segundo banco de dados

Consulta de paginação
selecione * no limite do usuário 0, 2
Consulta de paginação aleatória de uma biblioteca, enviando três instruções, resumindo os dados da consulta e retornando aleatoriamente um conjunto de dados.
selecione * da ordem do usuário pelo limite de descida de id 0, 2,
entre os dois maiores

14. ShardingJdbc

Middleware de banco de dados de código aberto da Dangdang

Para alcançar o princípio da separação de leitura e gravação:
1. É necessário configurar a conexão jdbc da separação de leitura e gravação no arquivo de configuração para todos os ShardingJdbc.O banco de dados mestre e o banco de dados escravo usam arquivos binários para obter a sincronização de dados
2. O ShardingJdbc determinará automaticamente o tipo de instrução SQL (DML ou DQL) Se for uma sentença DML, enviará uma solicitação para a configuração da conexão jdbc do mestre do distrito do lago.Se for uma sentença DQL, obtenha a conexão jdbc escrava para enviar a solicitação

Criar / excluir / atualizar / inserir DML

Quinze, a diferença entre ShardingJdbc e MyCat

O MyCat intercepta todas as solicitações Jdbc do cliente (dao) e as encaminha uniformemente para o banco de dados real

Todos analisam SQL, reescrevem instruções SQL por meio de regras de roteamento

  • ShardinJdbc é um formulário Jar, reescrevendo o método nativo do Jdbc na camada de aplicativo local para implementar o formulário de compartilhamento de banco de dados
  • Mycat pertence ao middleware do banco de dados do lado do servidor
  • ShardingJdbc é um middleware de banco de dados local; existe
    uma diferença entre o tipo de faixa de opções e o nginx para obter o balanceamento de carga

16. Por que o índice é inválido? O que importa notar?

17. Como o Mysql localiza consultas lentas

Dezoito, otimização de instruções SQL

19. Qual é a diferença entre sincronização de meia linha e sincronização paralela?

Vinte,

Vinte e um

22)

Vinte e três

24)

25)

26)

27

28)

29

Trinta,

Trinta e um

Trinta e dois

Trinta e três,

34)

1. Formato do arquivo de configuração
2. Implemente a interface especificada.A
consulta lenta precisa ser ativada.A
instrução padrão não responde dentro de 10 segundos é a consulta
lenta.Leia no arquivo de log especificado

Sharding = sub-biblioteca de sub-tabela

Sub-biblioteca master-slave, sub-table

Quando o índice executará operações de E / S

A diferença entre discos rígidos mecânicos e discos de estado sólido?

Qual é a diferença entre a estrutura de dados Hash, árvore binária balanceada, árvore B e árvore B +?
Hash: o comprimento da matriz é N e o valor Hash é Hash (nome) = X, então o local de armazenamento é o restante de X% N

Árvore binária balanceada (inventada por três cientistas da AVL):
assumirá o valor médio, como inserir 1, 2, 3, após o equilíbrio, 2 será o nó raiz, 1 é a subárvore esquerda e 3 subárvores à direita

Por exemplo, o índice da chave primária, a chave é a chave primária.Existem
dois nós folha e nós não folha, na parte inferior da árvore

Como o índice é persistente no disco rígido, portanto, para consultar os dados, o índice deve ser lido no disco rígido para comparação (IO). Ele precisa consumir recursos da CPU.
Se shardingjdbc ou mycat podem obter replicação mestre-escravo, o próprio banco de dados vem com A
natureza do disco IO
disk (I / O) -> memória (leia a memória, compare na memória) -> CPU
IO: leia o disco rígido na memória
, os arquivos serão gerados quando o índice for criado e existem muitos arquivos com vários índices e vários dados

Quantos nós estão armazenados na árvore B +?

Falha no índice

Com que frequência é executada a sincronização de dados de replicação mestre-escravo do MySQL? Ou configure você mesmo?

Monitore o arquivo binlog, toda vez que o dmlsql for sincronizado?

mycat obtém separação de leitura e gravação (através de permissões) e sub-biblioteca de sub-tabela

Duas maneiras de obter a separação de leitura e gravação:
1. mycat, intercepte todas as solicitações jdbc, seleção de pan, distinção de atualização, análise de rota, o cliente acessa o mycat através do ip da rede pública, há um banco de dados virtual no mycat
2, fonte de dados dinâmica aop, interceptação O método de serviço
é diferenciado pelo cabeçalho do método definido por você, como find

Qual é a diferença entre fontes de dados dinâmicas e múltiplas fontes de dados?
As fontes de dados dinâmicas incluem várias fontes de dados

O SpringBoot se conecta ao banco de dados virtual no Mycat e acessa outros bancos de dados através do Mycat.O
banco de dados na
nuvem Alibaba Cloud, Tencent Cloud, etc., faz muitas configurações automaticamente

Publicado 53 artigos originais · Curtidas2 · Visitas 1867

Acho que você gosta

Origin blog.csdn.net/qq_42972645/article/details/104679061
Recomendado
Clasificación