Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Ayuda con bd grandes

Estas en el tema de Ayuda con bd grandes en el foro de Bases de Datos General en Foros del Web. Hola buenas tengo un problema con una base de datos de unas visitas registradas en la web y tienen más de 1/2 millon. No me ...
  #1 (permalink)  
Antiguo 20/06/2010, 05:45
Avatar de syntex  
Fecha de Ingreso: noviembre-2002
Ubicación: Cataluña
Mensajes: 978
Antigüedad: 21 años, 5 meses
Puntos: 4
Ayuda con bd grandes

Hola buenas tengo un problema con una base de datos de unas visitas registradas en la web y tienen más de 1/2 millon.

No me anda por la cantidad almacenada.
He visto que se tienen que hacer index en las tablas, las utilizadas en where pero veo que en la bd de las visitas me las muestra todo y no se en que tabla hacer el index para ir mas rápido.

Necesito ayuda.

Os muestro la base de datos

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); 
Y como lo hago mostrar

include(pagina_medio.php);

Código PHP:
<?
     
if ($_GET[Pag] == ""){$PagI 0;}
     elseif (
$_GET[Pag] == 1){$pagI 0;}
     else{
$pagI = ((($_GET[Pag]-1)*$_SESSION[TABLCONT]));}
     
$pagF = ($_SESSION[TABLCONT]);
     
$limit "$pagI,$pagF";
     
$PAGS $pagF;
?>
Listado
Código PHP:
<?
$BD 
"visitas";
$WHERE "";
$ORDENAR "";
include(
"../estandar/pagina_medio.php");
?>
<?
$this
->Bd->consultar($BD,$WHERE,"$ORDENAR LIMIT $limit");
$Rn $this->Bd->num_rows();
while (
$RR $this->Bd->obtendatos()){
....................
....................
....................
}
$this->Bd->limpiaconsulta();
?>
<?
<?
$this->Bd->consultar($this->BD,$this->WHERE,$this->ORDENAR);
$Rn $this->Bd->num_rows();
$this->Bd->limpiaconsulta();
?>
<tr>
<td colspan="20"><? include("../estandar/pagina_abajo.php"); ?></td>
</tr>
<tr>
<td colspan="20"><? include("../estandar/pagina_mas_arriba.php"); ?></td>
</tr>
A donde pondriais el index en la tabla de la bd?
Como realizariais las consultas más rápidas?

Este script contiene paginaciones.
1. Cuenta resultados para hacer LIMIt paginacion
2. Muestra resultados con WHERE
3. Muestra las paginas para el link de paginacion.

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


Última edición por syntex; 20/06/2010 a las 09:53

Etiquetas: bd, grandes
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:39.