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

Optimizar consulta

Estas en el tema de Optimizar consulta en el foro de Mysql en Foros del Web. Hola que tal!! Estoy tratando de optimizar lo máximo una consulta en mysql, tengo solamente una tabla de la siguiente manera: Código: DROP TABLE IF ...
  #1 (permalink)  
Antiguo 28/07/2009, 17:14
 
Fecha de Ingreso: julio-2008
Mensajes: 116
Antigüedad: 15 años, 8 meses
Puntos: 1
Optimizar consulta

Hola que tal!!

Estoy tratando de optimizar lo máximo una consulta en mysql, tengo solamente una tabla de la siguiente manera:

Código:
DROP TABLE IF EXISTS `tblExample`;
CREATE TABLE `tblExample` (
  `ID` int(11) NOT NULL AUTO_INCREMENT,
  `Campo` varchar(50) NOT NULL,
  `Campo2` varchar(10) NOT NULL,
  `Campo3` varchar(50) NOT NULL,
  `Campo4` varchar(10) NOT NULL,
  `Campo5` varchar(150) NOT NULL,
  `Campo6` date NOT NULL,
  `Campo7 time NOT NULL,
  `Campo8` varchar(20) NOT NULL,
  `Campo9` varchar(45) NOT NULL,
  PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Esta tabla se llena diariamente con 1,500,000 registros. La consulta en vb.net 2008 es de la siguiente manera:

Código:
SELECT  Campo5, COUNT(Campo5) AS 'Total' FROM MyDBs.tblExample where Campo6 >= '" & _fecha1 & "' and Campo6 <= '" & _fecha2 & "' and Campo9 In (" & _text & ") and Campo5 Like '%" & _val & "%' group by Campo5
Un amigo me a corregido la consulta de la siguiente manera:

Código:
SELECT 
    Campo5, 
    COUNT(Campo5) AS 'Total' 
FROM 
    SELECT  
        Campo5
    FROM MyDBs.tblExample 
    WHERE 
    Campo9 IN (" & _text & ")  AND
    (Campo6 BETWEEN '" & _fecha1 & "' AND '" & _fecha2 & "') ) Tabla1
WHERE 
    Campo5 LIKE '%" & _val & "%'
GROUP BY Campo5
http://www.forosdelweb.com/f79/error...2008-a-721776/

Sin embargo me indica un error que no he podido corregirlo

Ademas de optimizar la consulta que debo de hacer en la BDs para obtener mejores resultados??, desconozco del tema, pero quizás ayude algo los procedimientos o vistas?? indexar??

Agradezco de antemano su apoyo y colaboración!!!

Saludos!!
  #2 (permalink)  
Antiguo 28/07/2009, 17:37
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: Optimizar consulta

Código SQL:
Ver original
  1. SELECT
  2.     Campo5,
  3.     COUNT(Campo5) 'Total'
  4. FROM
  5.   (SELECT
  6.      Campo5
  7.    FROM MyDBs.tblExample
  8.    WHERE
  9.      Campo9 IN (" & _text & ")  AND
  10.       (Campo6 BETWEEN '" & _fecha1 & "' AND '" & _fecha2 & "')
  11.    ) Tabla1
  12. WHERE Campo5 LIKE '%" & _val & "%'
  13. GROUP BY Campo5;
Faltaba el paréntesis inicial de la subconsulta.

Saludos.
__________________
¿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 29/07/2009, 10:59
 
Fecha de Ingreso: julio-2008
Mensajes: 116
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Optimizar consulta

Hola que tal gnzsoloyo!!!

Primeramente muchas gracias por tu apoyo. Bueno lo estuve probando funciona bien, sin embargo sigo con el problema inicial en

http://www.forosdelweb.com/f79/error...2008-a-721776/

Las consultas(la que ocupaba y la modificada) las probé tanto en MQB como en mi aplicación;en la primera en ambas (consultas) obtengo el mismo resultado, en tiempo es lo siguiente:

en mi consulta muestra: 231 rows fetched in 0.0162s (52.2059s)
con la corregida muestra: 231 rows fetched in 0.0146s (80.3818s)

Bueno pero en mi aplicación sigue surgiendo el error citado anteriormente, No se que paso es algo inconstante ya que de 20 veces que probé cada consulta (la que ya tenia y la que corregí) solo tres veces me mostró lo que tenia que mostrar.

Gracias por la atención prestada, y espero que me puedan orientar!!

Saludos
  #4 (permalink)  
Antiguo 29/07/2009, 17:17
 
Fecha de Ingreso: julio-2008
Mensajes: 116
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Optimizar consulta

Hola que tal de nuevo por aqui!!!

Resulta que estuve tratando de encontrar el por que dicho error, bien lo que hice según mis sospechas fue ir eliminados registros, llegue a cierto numero quedándome con miles y no volvió a surgir el error, mostrándose los datos correctamente. Pero no puedo hacer eso, ya que la base de datos como ya lo mencione se llena aprox. con un millón y medio de registro diarios, por lo menos debe de pasar una semana para vaciar la BDs. Vuelvo al dilema como le puedo hacer para manejar tanta información, que se tiene que optimizar en la BDs y en la consulta??

De antemano gracias, saludos!!!
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 09:40.