He hecho la prueba, y mejora la solucion del decimal. He creado una tabla identica a la del primer mensaje del hilo, pero el campo IP que sea bigint, y he puesto otro llamado IP2 con big int.
Entonces he ejecutado este script:
Código PHP:
Ver original$ip = '11111110101111001010010101110100001110000010101100100011110000011010101001001001010001011001001001001110111111101001100110000010';
$parte2 = substr($ip, 64, 128);
$n = 0;
while($n < 200000){
mysql_query("INSERT INTO acceso VALUES ('$id', '$fecha', 0, $fecha, '".bindec($parte1)."', '".bindec($parte2)."')"); $n++;
}
Esto ha insertado 200mil registros, ocupando 8.3 MB (que ha 50 millones son 1.9 GB)
Conclusion a 50 millones de registros:
Usando un campo varchar de 128 y guardando la ip en binario: 4.9 GB
Usando un campo decimal (39,0) y guardando la ip en decimal: 2.6 GB
Usando 2 campos BIGINT, convirtiendo la ip a binario, partiendo en 64 caracteres, y pasandolo a entero guardando cada parte en cada columna: 1.9 GB
Resultado: Mejor solucion los BIGINT de las propuestas! No se si estareis de acuerdo, pero almenos esa a sido mi conclusion tras el testeo.