Error con OPTIMIZE

Hola ... Tengo una macro-sql que tarda como 11 segundos en generar el resultado, es por ello que he tratado de optimizarla ... Antes de ponerme a modificar cosas como indices, he lanzado el comando OPTIMIZE, pero me da un error, he buscado dicho error por internet y pone que puede ser debido a varios motivos ... Como no domino mucho el inglés lo que he hecho ha sido ir quitando sentencias o condiciones de la sql, quedándome en la mínima expresión y dándome el mismo resultado:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'select encontrados.*
from (
select *
from inmuebles
' at line 1

El error es 1064.

Evidentemente la sql es:

select encontrados.*
from (
select *
from inmuebles) encontrados

¿Se te ocurre qué puede ser?

1 respuesta

Respuesta
1

Me da algo de confusión... ¿esta consulta te funcionaba antes?

Mysql alega problemas de sintaxis de la consulta y puede ser que la anidación esté mal o que no haya reconocido los espacio.

He intentado replicar la consulta en una base de datos personal (cambiando los nombres de las tablas a unos de mi modelo) y funciona la sintaxis.

Quizá si estas usando el comando optimize antes puede ser que genere el problema al usar optimize sobre una consulta, siendo que este comando trabaja sobre una tabla.

http://dev.mysql.com/doc/refman/5.0/es/query-speed.html

No, si la sql funciona bien, cojo la sql la ejecuto y retorna lo que tiene que retornar, incluso la sql completa ... pero al poner el optimize da el error comentado

Según la documentación de mysql que conozco. La sentencia optimize trabaja sobre una tabla y no sobre una sentencia sql por eso da un problema de sintaxis

http://dev.mysql.com/doc/refman/5.0/es/optimize-table.html

Si, eso he estado leyendo, lo que quería hacer era un EXPLAIN, pero he tirado de memoria y me ha fallado, he utilizado OPTIMIZE como "optimizar", pero por lo leído OPTIMIZE sirve para tablas, para cuando se han eliminado datos ...

Lo que quería era optimizar el funcionamiento de la tabla, y para ello debo utilizar EXPLAIN, para el tema indices y demás.

Saludos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas