INT x BIGINT (ou INT64) e limites
2011-01-20 23:27:38
2011-01-20 22:51:44
Autor: Sony Santos
https://gigawiki.com/sony/int-x-bigint-ou-int64-e-limites
Permalink: https://gigawiki.com/934
área = informática; assunto = limites, sql; categ = list, opiniões
Estava pensando em criar uma tabela que poderia ter muitos registros, possivelmente mais que 2 bilhões - o tamanho do tipo INT no MySQL. Minha opção era usar o tipo BIGINT (de 64 bits), cujo máximo é um número tão absurdamente grande (9*1018) que é, para todos os efeitos, inatingível.

Eu poderia deixar os campos com o tipo INT e depois alterá-los para BIGINT quando necessário, mas isso poderia gerar problemas na fase de conversão; então preferi usar o tipo BIGINT desde o começo.

No entanto, lendo hoje sobre Database Sharding, aprendi que bases muito grandes costumam ser divididas para melhorar a performance. Aí me caiu a ficha de que, na prática, eu nunca teria uma tabela com 2 bilhões de registros. Isso é mais do que o meu servidor de hospedagem oferece no plano mais caro. Levando em conta que cada registro teria mais de cem bytes, isso supera o tamanho do disco onde meu site está hospedado. De qualquer forma, uma tabela muito grande precisa ser particionada para permanecer útil.

Felizmente estou aprendendo essas coisas antes de começar a implementar. E vou usar o tipo INT. 

blog comments powered by Disqus