Pergunta

Estou trabalhando no projeto com tabela de banco de dados relativamente grande (700K linhas).

Erro, eu cometi ao projetar esquema de banco de dados. Quando as linhas estavam aumentando, eu tive que aumentar o tipo de coluna do ID BIGINT (x).

Agora é Bigint (44). Tenho medo de definir o alto valor X porque pensei que ele pode diminuir significativamente o desempenho. Talvez eu esteja errado..

Por favor me ajude a resolver o problema.

Que tipo de coluna posso definir uma vez e esquecer esse problema?

O que devo aprender melhor no campo de esquema de DB?

Foi útil?

Solução

Quando você cria uma coluna como BIGINT(44) O "44" é a largura da tela - não afeta a faixa de valores que você pode armazenar ou a velocidade na qual são recuperados.

Para um id de incrementação automática, você deseja usar um UNSIGNED número, por exemplo BIGINT(44) UNSIGNED. Isso dobrará o intervalo de valores e adicionará uma restrição extra, o que geralmente é uma coisa boa.

Um INT não assinado armazenará até 4.294.967.295 Um Bigint não assinado armazenará até 18.446.744.073.709.551.615 - você não vai preencher isso tão cedo.

Você não diz a rapidez com que seu ID máximo está crescendo - se você não está inserindo muitas linhas, então deve ficar com UNSIGNED INT como é preciso menos espaço.

Outras dicas

Eu acho que qualquer chave primária não será assinada por padrão. De qualquer forma, o uso de números negativos para chaves primárias é desaprovado, na melhor das hipóteses, e quebra coisas.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top