1-sim, 2-sim, 3-sim, 4-sim.
Também...
- Você realmente precisa de
BIGINT
? Não haverá 4 bilhões de valores emINT UNSIGNED
satisfazer? (E economize metade do espaço.) Presumivelmenteid
é o PK de alguma outra tabela? Nesse caso, essa tabela também precisaria ser alterada. - Pode
state
ser normalizado? Ou transformado em umENUM
? Novamente economizando espaço.
O item 3 é pior do que o mencionado devido à necessidade de travar duas chaves únicas.