![]() |
Prepare lento en Firebird.. y en MySQL??
Habia formulado esta pregunta en el foro de PHP pero creo que es mejor que se discuta aqui:
Al respecto de esto de la velocidad de los manejadores de bases de datos, quisiera preguntar algo a los que trabajan con MySQL y PosgreSQL y es ¿que tan buen desempeño tienen estos manejadores cuando te conectas remotamente via una VPN o Internet de baja velocidad?, en general una red lenta??? a Firebird le duele el mandar a preparar las consultas... muchas veces tarda mas en resolver la preparación que lo que se tarda en obtener los datos en si. esto tambien sucede en MySQL??? ó cuando usas MySQL ya no piensas en usar multicapas?? En Firebird cuando preparas una consulta de manera local el proceso solo toma algunas micras de segundo, pero remotamente puede tardar varios segundos cruciales. No he hecho pruebas con MySQL y quisiera conocer opiniones. A ver que me contestan, tal vez me convenzan de pasarme al "lado oscuro" :D |
Se me hace dificil pensar que nadie usa MySQL a travez de Internet y que me pueda dar una idea del desempeño del motor en estas condiciones...
O tal vez es que no quieren que me pase a ese motor y asi tengan otro más en la competencia :D |
El problema es que "somos los mismos" del otro foro, y ya hemos contestado, otra cosa distinta es que no te parezca bien lo que hemos escrito y decidas probar otra vez para ver si ahora encuentras la respuesta que tú quieres. :):):)
|
contestaron???... lo que pasa es que no quería desvirtuar la otra conversación... y supuse que las respuestas eran para la otra persona.
Ok, me quieres decir que Firebird es mejor que SQL en conexiones remotas???? porque los datos que ofrecias me parecio que eran para el desempéño con PHP no??? Lo que yo quiero saber es quien es mejor remotamente en aplicaciones de escritorio usando Delphi. Saber si tu ya tienes alguna experiencia al respecto o alguien aqui probo Firebird primero y luego se convenció de alguna manera que MySQL funciona mejor al respecto... es solo eso |
La comparativa de bases de datos tiene muchos matices. Ninguna es perfecta y una u otra se adaptará mejor a ciertos requerimientos y ciertas condiciones de trabajo, por no hablar de la hablidad de quien esté a cargo de la programación de los sistemas y su mantenimiento.
Entro diciendo esto porque me parece que ni firebird será mejor que mysql ni mysql mejor que firebird en todos los aspectos. Con respecto de la preparación de los queries, es probable que mysql sea mas rápido que firebird. Seguramente para devolver el resultado de los mismos también (depende del tipo de tablas que estes usando). La pregunta es: ¿La preparación de queries y su ejecución es el punto mas vital de tu aplicación?. Si la respuesta es si, probablemente debes quedarte con mysql. Si no, debes evaluar otros aspectos. En general, cualquier motor al que se establezca una conexión de manera remota tendrá un desempeño mas pobre que si se establece una conexión local, por eso, independientemente del motor, si vas a conectarte de manera remota, siempre debes pensar en usar multicapas.. :D Saludos. ;) |
Cita:
Cita:
Gracias JachGuate :p |
En las pruebas que he hecho con mysql y firebird, por internet, con una aplicación para una inmobiliaria, o sea, que los propietarios actualizan de vez en cuando y no es prioritario la velocidad y luego sí que se hacen muchas consultas por parte de los clientes. Pues bien, las conclusiones fueron que con mysql, cuando eran consultas pequeñitas, respondía un poquito antes que firebird, pero cuando la consulta implicaba la devolución de bastantes registros, entonces era firebird quien respondía más rápido.
En pruebas "bestiales" de traerse decenas de miles de registros para presentarlos luego en pantalla, mysql tardaba bastante, sin embargo con firebird era casi instantáneo. Pero, claro, esas fueron "mis" conclusiones con "mis" pruebas, con "mis" datos, para "mis" necesidades puntuales con un cliente determinado. Todo es muy relativo y depende de muchísimos factores, cada uno debe evaluar sus requerimientos, sus necesidades y llegar a conclusiones propias que se adapten a lo que necesite. Espero que sirva de algo este comentario. También fueron pruebas con una sóla conexión, yo solito. Pd.: perdona, xander, no había entendido bien lo que preguntabas. |
Cita:
|
yo tambien hice la prueba con una conexion remota a una bd mysql y a otra firebird.
con mysql abrir las tablas/querys es bastante mas rápido que con firebird , pero cuando hay muchos datos , o se ejecuta una consulta que devuelva gran cantidad de datos , firebird tarda menos en devolver la consulta y los datos. en ambos casos , hay que tener en cuenta el tipo de componentes que se usan , ya que algunos componentes se bajan todos los registros de golpe , y otros componentes se van bajando poco a poco los registros conforme vamos avanzando en el dataset. para cualquier conexion remota a través de internet a cualquier base de datos (mysql , firebird ,sqlserver , etc) yo recomiendo crear una vpn , la cual cifra y comprime los paketes ip. si haceis la prueba , con firebird y usando una vpn , la velocidad se incrementa mucho. |
Porque no mantendrá la aplicación delphi el código de ejecución de la consulta cuando se prepara en tiempo de diseño???
Eso estaria muy bien porque asi podría mantener preparadas desde el tiempo de diseño las consultas que se ejecutarán mas frecuentemente y no habría necesidad de prepararlas cada vez que se ejecute el programa; si se pudiera hacer eso estaria de pelos; pocos, pero pelos. |
Cita:
Hasta luego. ;) |
Cita:
Si se pudiera mantener el código BLR generado por una consulta determinada haciendo la preparación en tiempo de diseño, para despues solo hacer las solucitudes al servidor usando esa sentencia BLR se ahorraria el tiempo de preparacion en ejecución que es lo que generalmente se tarda mas. |
La franja horaria es GMT +2. Ahora son las 22:00:47. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi