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

Optimizar consulta miles de registros

Estas en el tema de Optimizar consulta miles de registros en el foro de Bases de Datos General en Foros del Web. Buenas, Recurro de nuevo por estos lugares para tratar de mejorar una consulta que trae mas de dos mil registros. Esta tardando de 3 a ...
  #1 (permalink)  
Antiguo 22/07/2015, 20:41
Avatar de carscx  
Fecha de Ingreso: noviembre-2008
Mensajes: 227
Antigüedad: 15 años, 5 meses
Puntos: 10
Pregunta Optimizar consulta miles de registros

Buenas,

Recurro de nuevo por estos lugares para tratar de mejorar una consulta que trae mas de dos mil registros. Esta tardando de 3 a 4 segundos. No se si se podra optimizar, como para que sea mas rapido. O tengo que investigar por otro lado.

La consulta es la siguiente.

Código MySQL:
Ver original
  1. SELECT p.id_producto,p.nombre_producto,p.pcosto_producto,p.precio_producto,p.id_marca,p.id_proveedor,p.cantidad_producto,p.observaciones_producto,p.fecha_alta_producto,p.fecha_edit_producto,p.estado_producto, p.codigo_control, m.id_marca,m.nombre_marca,prov.id_proveedor,prov.nombre_proveedor
  2.                 FROM productos p, marcas m, proveedores prov
  3.                 WHERE p.id_marca=m.id_marca AND p.id_proveedor=prov.id_proveedor AND p.estado_producto = 1 ORDER BY p.nombre_producto ASC
__________________
Frontend Developer
JS+HTML5+CSS3
Backend Developer
PHP+MySQL
  #2 (permalink)  
Antiguo 23/07/2015, 12:19
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Optimizar consulta miles de registros

que motor de bases de datos usas?????
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 23/07/2015, 12:43
Avatar de carscx  
Fecha de Ingreso: noviembre-2008
Mensajes: 227
Antigüedad: 15 años, 5 meses
Puntos: 10
Respuesta: Optimizar consulta miles de registros

Perdon, no especifiqué, es MySQL.

Saludos,
__________________
Frontend Developer
JS+HTML5+CSS3
Backend Developer
PHP+MySQL
  #4 (permalink)  
Antiguo 23/07/2015, 12:48
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Optimizar consulta miles de registros

primero usa join explicitos no join implicitosesto es usa inner, left, right join en tu sentencia:

Código MySQL:
Ver original
  1. SELECT p.id_producto,p.nombre_producto,p.pcosto_producto,p.precio_producto,p.id_marca,p.id_proveedor,p.cantidad_producto,p.observaciones_producto,p.fecha_alta_producto,p.fecha_edit_producto,p.estado_producto, p.codigo_control, m.id_marca,m.nombre_marca,prov.id_proveedor,prov.nombre_proveedor
  2.       FROM productos p
  3. inner join marcas m on (p.id_marca=m.id_marca)
  4. inner join proveedores prov on (p.id_proveedor=prov.id_proveedor)
  5. WHERE  p.estado_producto = 1 ORDER BY p.nombre_producto ASC

segundo revisa los indices de tus tablas, el plan de ejecucion que tienes
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 23/07/2015, 12:55
Avatar de carscx  
Fecha de Ingreso: noviembre-2008
Mensajes: 227
Antigüedad: 15 años, 5 meses
Puntos: 10
Respuesta: Optimizar consulta miles de registros

Muchas gracias por el dato, cambiare esa consulta, a ver si mejora.

Cita:
segundo revisa los indices de tus tablas, el plan de ejecucion que tienes
Por donde puedo investigar el tema de los indices, la verdad que no tengo idea de base de datos, y estoy un poco perdido en ese sentido.

Gracias,
__________________
Frontend Developer
JS+HTML5+CSS3
Backend Developer
PHP+MySQL

Etiquetas: miles, registros, select
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 01:50.