Como página através de uma consulta após a base de dados sub-tabela mysql? sub-biblioteca mysql programa sub-mesa?

Referência
1. Se somente para paginação, pode ser considerado como uma parte da tabela é o ID de mesa do intervalo, e o ID é contínuo, de tal modo que a primeira tabela ID de 1-100000, uma segunda 100000-20 milhões e esta página não deve ser problema.

2. Se outros sub-mesa, recomenda-se para construir um índice de esfinge, e, em seguida, consulta de paginação, a nossa empresa já é tão seco

programa de sub-tabela de sub-biblioteca do mysql

1. Por que você vê:

Quando os dados atinge dezenas de milhões de uma mesa, tempo de consulta que você tempo gasto tornam-se mais, se o inquérito conjunto, eu acho que poderia ter morrido ali. O objetivo da folha de pontuação neste, reduzir a carga do banco de dados, encurtar o tempo de consulta.

mysql existe um mecanismo de bloqueio de tabela e uma linha de fecho, a fim de assegurar a integridade dos dados. Você não pode bloquear a tabela representa operam sobre esta tabela, então eu tenho que terminar o trabalho na mesa de operação. bloqueio de linha, também, eu tenho que esperar uma outra operação SQL concluído estas peças de dados, a fim de operar esses pedaços de dados.

  1. procuração mysql: ameba

Faça MySQL Cluster, usando a ameba.

Do alto do programa java está em causa, você não precisa saber a origem do servidor primário e do servidor, que é transparente a partir do servidor de banco de dados principal para os principais termos. Pode ser configurado pelo ameba.

E 3. grande quantidade de dados acessados ​​com freqüência mesa, dividida em várias tabelas

Por exemplo, uma tabela de banco de dados para uma plataforma local - a tabela de empresa, uma grande quantidade de dados, esses dados podem ser projectadas para fora da grande escala, vamos avançar a separação de uma tabela de N, N é o número, de acordo com a situação real.

 某网站现在的数据量至多是5000万条,可以设计每张表容纳的数据量是500万条,也就是拆分成10张表,

Então, como para determinar se os dados de uma tabela particular é cheio dele? Para ser adicionado à tabela de dados, registros fazer primeiro antes de inserir o número de mesas de operação no bloco, quando <5 milhões de dados diretamente inserido, quando o limiar foi atingido, você pode criar um novo segmento na tabela de banco de dados do programa ( ou ter criado anteriormente), em seguida, inserir operação.

  1. Usando o mecanismo de armazenamento de mesclagem para alcançar sub-meter

Se você quiser separar os dados de grande escala existentes mais doloroso, a coisa mais dolorosa é mudar o código, porque o programa dentro da instrução SQL foi escrito. Fundir-se com o mecanismo de armazenamento para alcançar sub-tabela, este método é adequado.

Por exemplo criança:

------------------- ----------------- ---------- linha divisória lindo ---------------------

Arquitetura de banco de dados

1, uma replicação MySQL mestre-escravo simples:

MySQL cópia mestre de leitura separada resolvido e escrever o banco de dados, melhora o desempenho e uma boa leitura, que é a seguinte:

A partir do processo de replicação principal mostrado abaixo:

No entanto, a replicação de mestre-escravo, trouxe também uma série de outros gargalos de desempenho:

  1. Escrever não pode ser estendido

  2. Não é possível gravar o cache

  3. cópia Delay

  4. Bloqueio de ascensão modelo

  5. Tabela de taxa de cache maior caiu

Que de alguma forma resolver os problemas, que produz o seguinte programa de otimização, dar uma olhada.

2, uma divisória vertical MySQL

Se o negócio foi suficiente independente para corte, e que os dados de diferentes serviços em servidor de banco de dados diferente será um programa bom, mas apenas no caso de um dos o colapso do negócio, isso não afetará o funcionamento normal de outros serviços, e também jogou uma carga papel desvio, aumentar consideravelmente a capacidade de movimentação do banco de dados. Após as seções verticais de esquema de banco de dados é a seguinte:

No entanto, embora entre empresa tem independência suficiente, mas sempre um pouco mais ou menos entre alguns contatos de negócios, tais como usuários, e cada empresa irá basicamente associado Além disso, esta abordagem de particionamento não pode resolver um único dados da tabela disparada quantidade de problemas, então por que não tentar dividir horizonte?

3, o nível de fatia MySQL (Sharding)

Esta é uma idéia muito boa, de acordo com certas regras para o usuário (por ID de hash) de pacotes, e envia o conjunto de dados do usuário armazenados em uma fatia de banco de dados, ou seja, um Sharding, tais como o número de usuários, simplesmente um servidor configurado para, o diagrama a seguir:

Como determinar caco de um usuário do mesmo, você pode construir um caco de usuários e correspondentes tabelas de dados, cada solicitação para começar esta lista para encontrar id fragmento do usuário, em seguida, outros dados relevantes do fragmento correspondente, como mostrado abaixo :

Acho que você gosta

Origin www.cnblogs.com/djwhome/p/12536018.html
Recomendado
Clasificación