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
Seis, princípio de cluster fragmentado do MySQL
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