Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Quão grande é muito grande para uma tabela MySQL?


Não há uma ótima solução geral para a pergunta "Quão grande é muito grande" - essas preocupações geralmente dependem do que você está fazendo com seus dados e quais são suas considerações de desempenho.

Existem alguns limites fundamentais nos tamanhos das tabelas. Você não pode ter mais de 1.000 colunas. Seus registros não podem ser maiores que 8k cada. Esses limites mudam dependendo do mecanismo de banco de dados. (Os aqui são para InnoDB.)

Parece que você mesclou vários conjuntos de dados diferentes em uma tabela. Você provavelmente tem alguns campos que informam a qual conjunto de dados esse registro pertence, juntamente com alguns campos de dados e algumas informações de carimbo de data/hora. Esse não é um registro muito amplo (a menos que você esteja registrando, digamos, todos os parâmetros de entrada de cada solicitação.) Seu principal problema será com a seletividade . Indexar esta tabela de forma significativa será um desafio. Se seus campos comuns puderem ser seletivos o suficiente para que você possa usá-los para obter os registros desejados sem consultar a tabela, isso será uma grande vantagem. (Cf. varredura da tabela)

Para tantos registros por dia (basicamente, dois por segundo o dia todo, e presumo que você tenha um período de pico de carga em que é muito maior), você também deve verificar especificamente as otimizações em melhorar a velocidade de inserção . Como regra geral, mais índices =inserções mais lentas. Se puder, considere arquivar registros desatualizados em outra tabela inteiramente. Em locais de trabalho anteriores, usamos uma estratégia de arquivamento do último mês, três meses anteriores, seis meses anteriores, cada um em tabelas separadas. Outra ideia é excluir registros mais antigos. Muitos ambientes simplesmente não precisam de informações além de uma determinada data. Manter os registros de três meses atrás geralmente é muito caro.

Por fim, não negligencie o armazenamento físico da sua mesa. Quanto mais finos forem seus registros, menos E/S física precisará ocorrer para ler (ou para inserir) um registro. Você pode armazenar seus índices em um disco rígido físico separado. Se houver muitos dados redundantes em seus registros, armazenar a tabela compactada pode realmente ser um aumento de velocidade. Se você tiver um pouco de dinheiro para gastar, considere o valor de uma boa matriz RAID para distribuir seus dados.

Então, respondendo a sua pergunta básica:são muitos discos, mas com um olhar cuidadoso na afinação, não será um problema.