Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/04/2007, 19:39
Avatar de derkenuke
derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
tabla en BDD gigantesca y consulta interminable

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?
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.