Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/02/2012, 19:46
Lordseed
 
Fecha de Ingreso: febrero-2004
Mensajes: 143
Antigüedad: 20 años, 9 meses
Puntos: 2
Queries que generan sobrecarga

Hola a todos. Gracias a este foro fuí creando mi sitio web que es un directorio con casi 2 millones de filas, 69 tablas, pesa 350 MB y recibe 15.000 visitas al día

Lamentablemente por lo visto no lo hice bien, y mi hosting bloqueó mi base de datos por una constante llamada a la base de datos.

Cada página tiene los SELECT que coloco a continuación, y quisiera ver si es posible resumir eso en menos SELECT o llamadas. Si necesitan otra parte del código o algo de la base de datos, diganme que se necesita y lo pego aquí.

1)
Código PHP:
$datosempresaaa = @mysql_fetch_array(mysql_query("SELECT * FROM peru_export NATURAL LEFT JOIN peru_export_partida LEFT OUTER JOIN peru_empresas ON peru_export.ruc = peru_empresas.ruc_nvo WHERE id='".$ttempresaid."' limit 1"));] 
2)
Código PHP:
$result mysql_query("SELECT * FROM peru WHERE empresa LIKE '%$empresa_operativa%' ORDER BY id ASC LIMIT 1"$con); 
if (
$row mysql_fetch_array($result)){ 

while (
$field mysql_fetch_field($result)){ 

do { 
echo 
"Exportaciones <a href=\"".limpiaurl($datosempresaaa['empresa'])."-peru".$headers_idioma['lenguaje']."-".$row["id"].".php\">Importaciones </a>";
      } while (
$row mysql_fetch_array($result)); } else { 
echo 
"¡ No se encontraron registros de importaciones !"



3)
Código PHP:
$tabla mysql_query("SELECT DISTINCT * FROM peru_export_partida LEFT OUTER JOIN ncm_4_dig ON peru_export_partida.partida = ncm_4_dig.ncm WHERE ruc='$ruc' LIMIT 3");
while (
$registro mysql_fetch_array($tabla)) { 
echo 
''.$registro['partida'].' '.$registro['cap'].' '.$registro['desc'].'<br>
'
;

4)
Código PHP:
$tabla mysql_query("SELECT DISTINCT * FROM peru_export NATURAL JOIN peru_export_partida WHERE partida='$headers_partida' LIMIT 3");
while (
$registro mysql_fetch_array($tabla)) { 
    
$headers_empresa $registro['empresa'];

echo 
"<a class='linkrelacionados' href=\"".limpiaurl($registro['empresa']).$headers_pais.$headers_idioma['lenguaje']."-".$registro["id"].".php\">\n$headers_empresa - 
</a>"
;
}
mysql_free_result($tabla);
mysql_close($con); 
5)
Código PHP:

$_pagi_sql 
"SELECT * FROM peru_export";
$_pagi_cuantos 10;
$_pagi_nav_num_enlaces 5;
$_pagi_mostrar_errores false;
$_pagi_conteo_alternativo true;
$_pagi_propagar = array("id","termino");
$_pagi_nav_estilo "nav";
$_pagi_nav_anterior "Anterior";
if (
$_pagi_actual $_pagi_totalPags){

$_pagi_url $_pagi_actual 1;

$_pagi_navegacion_temporal[] = "<a ".$_pagi_nav_estilo_mod2." href='".$_pagi_enlace."_pagi_pg=".$_pagi_url."'>$_ pagi_nav_siguiente</a>";

$_pagi_url $_pagi_totalPags;

$_pagi_navegacion_temporal[] = "<a ".$_pagi_nav_estilo_mod2." href='".$_pagi_enlace."_pagi_pg=".$_pagi_url."'>$_ pagi_nav_ultima</a>";
}
include(
"../paginator.inc.php");
while(
$row mysql_fetch_array($_pagi_result)){
    echo 
"<ul><li class='ListBox'><h2>&nbsp;<a href=\"".limpiaurl($row['empresa']).$urltoentrerprise.$row['id'].".php\">".$row['empresa']."</a></h2></li></ul>";
}
echo
".$_pagi_navegacion."
Los NATURAL JOIN, LEFT OUTER JOIN y otros los puse así porque de lo contrario no me funcionaba bien.

Hay algún consejo que puedan darme??.

Desde ya agradezco mucho su ayuda
Marcelo