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 es de todos los campos creados en la tabla por eso le e puesto "*".
Muchas gracias.