Ver Mensaje Individual
  #29  
Antiguo 14-03-2014
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Reputación: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Cita:
Empezado por darkerbyte Ver Mensaje
Gracias amigo Mamcx. Has sido demasiado amable en hacer la prueba con los 100 millones de registros. Aunque el tamaño me pareció muy alejado de lo que calcule originalmente. Con que tipo de datos probaste? De hecho los datos serian:

Código SQL [-]placa : char(10) multas : tinyInt(1) robo : tinyInt(1) pagos : tinInt(1)
Mira un test (en python)

http://repl.it/Py1

De hecho mi tabla era:

Código SQL [-]
CREATE TABLE test
    (
        Id integer PRIMARY KEY AUTOINCREMENT,
        name TEXT,
        Value INTEGER
    );

Que es menos campos. Ten en cuenta que sqlite solo tiene 2 tipos de datos: INT/VARCHAR.

----

Tal vez es hora de pensar en algo diferente a una BD normal.

Me acorde de los bitarray:
http://stackoverflow.com/questions/1...rray-in-python

Usando un test rapido en python:

Código PHP:
>>> from bitarray import bitarray
>>> bitarray(1000*1000*1000)
>>> 
with open('somefile.bin''wb') as fh:
...     
a.tofile(fh)
... 
>>> exit() 
El archivo queda pesando 125 MB. Esto es porque un BITMAP/BITARRAY almacena BITS, no BYTES.


Ahora, como carajos se usa eso? Un ejemplo completo (esto es usando REDIS, pero el concepto es general):

http://amix.dk/blog/post/19714
http://blog.getspool.com/2011/11/29/...redis-bitmaps/
__________________
El malabarista.
Responder Con Cita