Tengo una base de datos en mysql en la que opero por medio de PHP, y por, cómo no, phpmyadmin.
En ella existe una sóla tabla experimental, que la he hecho gigantesca. Unos datos:
Código:
Vamos, unos 5,89gb!. Tiene 82.596.931 registros +-------------------------------+ | ESPACIO UTILIZADO | +-------+-----------------------+ |Tipo | Uso | |Datos | 4,096 MB | |Índice | 1,943 MB | |Total | 6,039 MB | +-------+-----------------------+

Código:
+-------------------------------------------------------+ | ESTRUCTURA | +-------+---------------+-------------------------------+ |CAMPO | TIPO | OTROS | +-------+---------------+-------------------------------+ |campo1 | bigint(9) | no nulo, único, primario | |campo2 | varchar(8) | no nulo | |campo3 | varchar(32) | no nulo | +-------+-----------------------------------------------+
El caso es que para hacer una consuta tipo
Código:
no tarda casi nada, enseguida devuelve un resultado. Creo que es por ser campo1 el campo primario.select campo1,campo2,campo3 from tabla where campo1=34
Para hacer una consulta con la cláusula where y el campo campo2 es cuando se tira una infinidad:
Código:
He puesto el límite de tiempo de ejecución para un php en 600 segundos (10 minutos) y todavía salta.select campo1,campo2,campo3 from tabla where campo2="paco"
En phpmyadmin cuando hago una consulta de ese tipo también es interminable, no así con campo1.
¿Alguien ha trabajado con tablas tan gigantescas?
¿Cual puede ser la posible solución al problema? He pensado que podría dividir la tabla en varias, pero no se cómo acerlo ya que con phpmyadmin no puedo exportar esa cantidad de registros; he probado con 1millón y ha tardado lo menos 15 minutos... y eso tendría que hacerlo 83 veces... es inviable.
¿Soluciones?