Foros del Web » Programando para Internet » PHP »

problemas con consultas msql

Estas en el tema de problemas con consultas msql en el foro de PHP en Foros del Web. hola buen dia amigos de forosdelweb quiero una ayuda por favor tengo un tabla llamada videos en la cual quiero sacar solamente una consulta, utilizando ...
  #1 (permalink)  
Antiguo 12/05/2012, 16:23
 
Fecha de Ingreso: agosto-2010
Ubicación: peru
Mensajes: 115
Antigüedad: 13 años, 8 meses
Puntos: 0
problemas con consultas msql

hola buen dia amigos de forosdelweb

quiero una ayuda por favor
tengo un tabla llamada videos en la cual quiero sacar solamente una consulta, utilizando la llave primaria o el index primario, como podria hacer para que me saque solo esa fila sin tener que buscar en los 5 millones de registros mi consulta es de esta manera:

Código PHP:
$sacavid=mysql_query("SELECT * FROM youtube WHERE id = '".$id."'");
$sacavid=mysql_fetch_array($sacavid);
echo 
$sacavid[titulo];
echo 
$sacavid[titulo];
echo 
$sacavid[titulo]; 
por que mi server load esta en rojo y se para reniciando y me dicen que es la base de datos o mejor dicho la conslta ala base de datos
  #2 (permalink)  
Antiguo 12/05/2012, 16:56
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: problemas con consultas msql

Mira, la consulta es muy directa. No es muy optimizable, ya está optimizada por definición, ya que según dices, el valor que usas para buscar es la PK.
Por otro lado, que sean 5 millones, o 5.000 millones, es medio irrelevante, ya que la PK en este caso es un puntero directo. Yo he realizado busquedas contra más de cien millones de registros, y la consulta sólo dura menos de medio segundo... en una PC de escritorio común.

Hay. sí, un par de cosas que puedes mejorar:

1) Si buscas un valor numérico, no lo pongas entre apóstrofos. Obligas a una conversión implícita, lo que en grandes volúmenes de datos puede ser malo para la performance.
2) A menos que vayas a usar todos los datos sin excepciones, no es bueno hacer un "SELECT *...". Eso hace que MySQL devuelva todo el contenido del registro (incluyendo la PK), y si la longitud es muy grande, es de una pésima performance. Es preferible que indiques exactamente cuáles campos vas a usar.

Un caso especial puede darse por cuestiones de programación: Si la variable llega vacía por accidente, la sintaxis aún es válida, y la base comparará todos los registros del índice contra un espacio vacío... Con lo que puede suceder es que MySQL termine haciendo un full table scan, lo que es un espanto para el servidor.
Asegúrate de que la variable contenga datos, y que esos datos sean numéricos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 12/05/2012, 17:06
 
Fecha de Ingreso: agosto-2010
Ubicación: peru
Mensajes: 115
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: problemas con consultas msql



DE ESTA MANERA ES MI TABLA Y UTILIZO

echo $sacavid[titulo];
echo $sacavid[idvid];
echo $sacavid[hits];
  #4 (permalink)  
Antiguo 12/05/2012, 17:42
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: problemas con consultas msql

Cita:
Iniciado por czfritz Ver Mensaje


DE ESTA MANERA ES MI TABLA Y UTILIZO

echo $sacavid[titulo];
echo $sacavid[idvid];
echo $sacavid[hits];
Perdoname, pero el cómo uses la información devuelta no tiene relación con que la consulta sea eficiente o no a nivel de SQL.
Son dos cosas totalmente diferentes.

Por otro lado, no queda claro en tu caso porqué te dicen que tu consulta causa problemas al servidor de la base de datos.

¿Estás seguro de que el problema se da con esta consulta, y no con otra?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: fromes, mysql, select, video
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 10:08.