Hola
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:
+-------------------------------+
| ESPACIO UTILIZADO |
+-------+-----------------------+
|Tipo | Uso |
|Datos | 4,096 MB |
|Índice | 1,943 MB |
|Total | 6,039 MB |
+-------+-----------------------+
Vamos, unos 5,89gb!. Tiene
82.596.931 registros

y esta estructura:
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:
select campo1,campo2,campo3 from tabla where campo1=34
no tarda casi nada, enseguida devuelve un resultado. Creo que es por ser campo1 el campo primario.
Para hacer una consulta con la cláusula
where y el campo
campo2 es cuando se tira una infinidad:
Código:
select campo1,campo2,campo3 from tabla where campo2="paco"
He puesto el límite de tiempo de ejecución para un php en 600 segundos (10 minutos) y todavía salta.
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?