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

Saber si hay un dato en una tabla

Estas en el tema de Saber si hay un dato en una tabla en el foro de Mysql en Foros del Web. Hola a todos, mi consulta es la siguiente. tengo una tabla donde quiero saber si hay alguna fila que tenga un valor determinado en un ...
  #1 (permalink)  
Antiguo 26/07/2008, 07:12
 
Fecha de Ingreso: abril-2007
Mensajes: 140
Antigüedad: 17 años
Puntos: 3
Saber si hay un dato en una tabla

Hola a todos, mi consulta es la siguiente.
tengo una tabla donde quiero saber si hay alguna fila que tenga un valor determinado en un campo, que no necesariamente es la clave. Por ejemplo, en la tabla de videos (idvideo, idautor, tamano, titulo, etc etc)
Un autor puede tener muchos videos y la tabla puede ser grande. Si quiero saber si un autor determinado tiene algun video puedo hacer la consulta de varias maneras,por ejemplo select * from videos where idautor = autordeterminado.
pero si la tabla es muy grande y hay muchos registros, cual e la manera de hacerla usando menos recursos, menos tiempo, etc??? Ya que tengo muchas tablas a verificar y necesito tardar lo menos posible para que la pagina no tarde mucho en cargar. Por ejemplo poniendo un LIMIT 1 o cual. En realidad pongo esta pregunta para escuchar opiniones, la parte de lenguaje la conozco pero me falta conocer un poco la parte de funcionamiento. Desde ya muchisimas gracias.
  #2 (permalink)  
Antiguo 26/07/2008, 11:56
Avatar de xbx
xbx
 
Fecha de Ingreso: mayo-2008
Ubicación: /home/xbx
Mensajes: 301
Antigüedad: 16 años
Puntos: 11
Respuesta: Saber si hay un dato en una tabla

Para el ejemplo que propones
Cita:
select * from videos where idautor = autordeterminado
Lo recomendado es que ´idautor´ sea INDEX de la tabla. Ya que el motor primero consulta el indice para saber la ubicacion de las filas en cuestion y luego accede a la tabla sin tener que leer la totalidad de los registros.

Saludos.
  #3 (permalink)  
Antiguo 26/07/2008, 12:07
 
Fecha de Ingreso: abril-2007
Mensajes: 140
Antigüedad: 17 años
Puntos: 3
Respuesta: Saber si hay un dato en una tabla

Gracias por tu respuesta xbx. Una consulta mas. Yo deberia poner idautor como INDEX de la tabla aunque no sea clave. Ok, entendido. Ahora mi proximapregunta es si asi como la planteas "select * from videos where idautor = autordeterminado" no busca mas "tiempo" del necesario, ya que con saber que hay al menos uno ya me alcancanza para esta consulta.
Gracias.
  #4 (permalink)  
Antiguo 26/07/2008, 12:29
Avatar de xbx
xbx
 
Fecha de Ingreso: mayo-2008
Ubicación: /home/xbx
Mensajes: 301
Antigüedad: 16 años
Puntos: 11
Respuesta: Saber si hay un dato en una tabla

Puedes colocar el LIMIT 1 que mencionas. Esta muy bien.

Recuerda que las tablas pueden tener tantos indices como sea necesario y que éstos no necesariamente son claves o campos únicos. (Aunque hay indices del tipo UNIQUE)


En tablas grandes los indices hacen la gran diferencia en cuanto a rendimiento. Creeme, el optimo rendimiento de una tabla depende, entre otras cosas, de la correcta eleccion de los índices de la misma. La diferencia puede ser muy grande.


Saludos pabloturchi!!
  #5 (permalink)  
Antiguo 26/07/2008, 15:29
 
Fecha de Ingreso: abril-2007
Mensajes: 140
Antigüedad: 17 años
Puntos: 3
Respuesta: Saber si hay un dato en una tabla

Gracias xbx !!!! Muy claro lo que me acabas de mencionar. Esto me ayuda muchisimo !!!!
  #6 (permalink)  
Antiguo 26/07/2008, 15:51
Avatar de xbx
xbx
 
Fecha de Ingreso: mayo-2008
Ubicación: /home/xbx
Mensajes: 301
Antigüedad: 16 años
Puntos: 11
Respuesta: Saber si hay un dato en una tabla

Un placer
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 20:53.