Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/07/2010, 00:19
Avatar de syntex
syntex
 
Fecha de Ingreso: noviembre-2002
Ubicación: Cataluña
Mensajes: 978
Antigüedad: 21 años, 5 meses
Puntos: 4
Problemas con el tiempo bd

Hola buenas,

Tengo una tabla de 500.000 usuarios y lo limito con LIMIT el problema es que los primeros resultados de las paginas va perfecto y rápido, pero si me voy a la página por ejemplo 12000 tarda mucho en ejecutar la consulta.

Os paso el código y que esta mal?
Tengo que crear index, pero donde? En el Id?

Código PHP:
mysql_query("CREATE TABLE IF NOT EXISTS `$DB`.`visitas` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
`id_usuario` INT( 15 ) NOT NULL ,
`id_agente` INT( 15 ) NOT NULL ,
`ip` VARCHAR( 80 ) NOT NULL ,
`url_access` VARCHAR( 80 ) NOT NULL ,
`explorador` VARCHAR( 80 ) NOT NULL ,
`idioma` VARCHAR( 80 ) NOT NULL ,
`visitado` VARCHAR( 150 ) NOT NULL ,
`url` VARCHAR( 100 ) NOT NULL ,
`fecha` DATE NOT NULL ,
`hora` TIME NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE = MYISAM"
,$conexion); 

Código PHP:
$R $this->Bd->consultar("*",$this->BD,$this->WHERE,"$this->ORDENAR LIMIT $limit");
while (
$RR $this->Bd->obtendatos($R)){
.......
.......
.......
.......
}
$this->Bd->limpiaconsulta($R);
$R $this->Bd->consultar("id",$this->BD,$this->WHERE,$this->ORDENAR);
$Rn $this->Bd->num_rows($R);
$this->Bd->limpiaconsulta($R); 
La consulta seria correcta?
La consulta es de todos los campos creados en la tabla por eso le e puesto "*".

Muchas gracias.
__________________
------------------------------------------------
La paciencia es el rey de la ciencia
------------------------------------------------


Última edición por syntex; 01/07/2010 a las 00:51