MySql: ¿Una base de datos menor de edad?
Wop!
A raiz de un hilo planteado en el foro de IB en el que un usario planteaba dudas al migrar a Firebird y que hacía referencia a MySql como una base de datos para "proyectos pequeños", ha renacido en mí una duda que he tenido siempre: ¿Por qué todo el mundo se mete con MySql? Excepto aquellos desarrolladores que han tenido larga experiencia con ella, la mayoría opinan que es un sistema rápido, pero que le falta robustez, características para poderse comparar con productos como Oracle, Interbase o SQLServer. Pues a mi me parece que no! ¿Por que la nasa migró parte de sus sistemas a MySql cuando los tenía desarrollados?¿Porque no es una BD robusta?... a mi me parece que no! Se ha argumentado que no tiene soporte para transacciones... a mi me parece que sí! Tambien se ha dicho que no soporta integridad referencial... a mi me parece que tambien La diferencia entre MySql y otros servidores es que en mysql, si prefieres prescindir de una característica para que la cosa chute más rápida, lo haces, sin más. Bueno, el debate está abierto... hagan juego! |
Hola,
el problema es que las características que citas han sido añadidas en sucesivas versiones y, a fuerza de inercia, la gente sigue teniendo prejuicios contra MySQL. Saludos. |
Hablamos de los "añadidos" de SQLServer? Por no nombrar las demas, todas han ido evolucionando!!!!!
|
Cita:
Saludos. |
Lamentablemente ya no es la base de datos gratuita que era, de ahí que PHP esté ya tomando alternativas como SQLite y similares.
Por las pruebas que hemos hecho, MySQL es la mas rápida con diferencia cuando tiene pocos registros, a la que le metes una tabla con 100 campos y un par de millones de registros, se le caen los pantalones. |
Cita:
Cita:
|
Algo que me gustaría agregar.
Hace no mucho vi aquí un hilo donde se preguntaba como realizar un sistema en Interbase que accediera a varias bases de datos. Yo no conozco Interbase pero me sorprendió sobremanera ver que no tiene una capacidad que MySql tiene casi desde sus inicios (sino es que desde el comienzo mismo) que es la de poder realizar consultas involucrando varias bases de datos (eso sí, en el mismo servidor). Un saludo |
¡Hola a todos!
Hace poco más de un año, cuando investigaba acerca de MySQL, me encontré con varios documentos que comentaban la carencia de transacciones en ese manejador de base de datos. Creo que es una cuestión de sicología y mercadotecnia. Imaginemos el escenario: — ¡Oh! ¿Que será eso de "MySQL"? Suena como a una combinación de Mis Documentos y SQL Server. Tal vez sea uno de esos productos impopulares y torpes de Microsoft, como la libreta de direcciones o el asistente de Office. O tal vez es se trata de una de sus nuevas tecnologías de lentos y pesados DLLs, quizá su nuevo OLE, Toro, OLE. O quizás su versión ultra ampliada del lenguage SQL. ¿Querrá imponerlo al mundo? Seguramente estará lleno de Update Facking Patchs. — ¡Oh! Parece que no es eso, de hecho está ligado con PHP. Ah, ya veo, aquí dice que se usa mucho en PHP porque es una base de datos ligera, sencilla y suficiente para la mayoría de las páginas web que todo lo que hacen es mostrar unos cuantos registros de algunas tablas. Inclusive, aquí dice que no maneja transacciones porque casi no se necesitan en páginas Web. Ojalá de todas formas PHP pueda trabajar con otras bases de datos mejorcitas. Lamentablemente existen muchos productos buenos como MySQL o extraordinarios como Delphi, cuyo rechazo se basa en los prejuicios sicológicos que en muchas personas causan palabras y frases como "My", "SQL Server", "Pascal", "fuertemente tipificado", "lenguaje de mediano nivel", etc. A veces hasta miedo me da decir que cierta función es sobrecargada (Overload). No valla a ser que se crea que es una función pesadota, lenta y con 53 parámetros por valor y 114 por variable (como las de Microsoft :D) Recuerdo las palabras de Rodrigo Baca, mi exjefe de 1997: — Vamos a optar por Visual Basic porque parece ser un lenguaje popular y fácil de usar. La mercadotecnia es una camión sin frenos viajando cuesta abajo por una larga y vacía calle. Podemos esperar a que se estrelle (dentro de varias décadas) o ahorrar tiempo, adelantarnos, subir la pesada pero honorable cuesta y colocar en la cima la bandera de MySQL, Delphi, Oracle, Interfaz GH ;), y otros productos de calidad. Atentamente, Al González :). |
Pues yo también tengo mis reservas con mySQL. Que haya resultado "casi" igual a Oracle en algunas pruebas.. lo considero "casi" imposible... aunque habria que ver los parámetros y por donde van tirando las balas...
He leido un documento de hace unos 3 o 4 años, donde ciertamente mySQL resulta la mejor base de datos para la gran mayoría de aplicaciones web, cosa que no discuto en el presente... pero en ese mismo test, interbase, para sorpresa de muchos (incluido yo) resultó ser la mas escalable (número de usuarios y número de registros almacenados). En cuanto a las transacciones... según yo seguia sin tenerlas, o es que las tiene a partir de las últimas versiones. No se que tan desarrollado esté su lenguaje de triggers y stored procedures... ni cómo este su rendimiento (optimización) que por cierto es donde peor puede calificarse a Interbase (no he tenido tiempo ni oportunidad de evaluar a fb). Lo cierto, es que, al menos yo, tengo relegado a mySQL para proyectos web, de donde no pienso moverlo en un furuto cercano... pero ni me he atrevido a probarlo para un proyecto de escritorio, multiusuario, etc, etc. Habrá que hacer unas pruebas de nuevo... de hecho, yo tengo instalado mySQL, Oracle e Interbase en mi servidor... si alguien se prepara unas pruebas, con carga pequeña, mediana y grande, podemos llegar a nuestras propias conclusiones. Me envian los scripts... los aplicativos, y yo me encargo de correr los tests y publicar los resultados. Hasta luego. ;) |
Hola a tod@s:
Hace unos meses tuvimos que decidir, en mi empresa, qué base de datos usar para que los clientes accedieran por internet a una serie de información personalizada, sólo consultas, no pueden dar altas ni hacer modificaciones. Hicimos pruebas con MySql 4 y con Firebird 1. Cuando había unos pocos miles de registros, MySql respondía muy bien, aunque Firebird no se quedaba atrás, sin embargo, cuando se pasó los 50.000 registros, normalmente Firebird respondía antes a las consultas y lo qué sí ocurría siempre es que cuando había más de 30 ó 40 usuarios conectados, siempre respondía mucho antes firebird, con gran diferencia. Quizás a todos no les vaya igual, pero esa fue nuestra experiencia y hasta ahora nos va estupendamente con unos 80 usuarios conectados todo el tiempo, de media, y varios millones de registros. Hicimos unas pequeñas pruebas con Oracle y nos resultó algo lenta en comparación y teniendo en cuenta su coste económico decidimos no usarla. Hemos visto que MySql ha hecho grandes avances e incluso ahora, si tuviéramos que volver a decidir, también haríamos pruebas con MaxDb, que parece muy interesante. En fin, que no hay nada definitivo, todo depende del proyecto a realizar, de los gustos, del precio e incluso de las manías personales. Saludos para tod@s. |
Hola.
De acuerdo, MySQL ya tiene por fin Integridad referencial y Transacciones (solo si utilizas el formato de archivos MaxDB), pero aún así está muy lejos de tener las características básicas que ofrecen los servidores SQL. Por no tener, a estas alturas aún sigue sin aceptar subconsultas, que van a aparecer en la nueva versión MySQL 4.1 (actualmente en estado Alpha), por no hablar de Procedimientos almacenados, Triggers, Cursores, ... (están en el planning para la versión 5). Quizá dentro de unos años si que llegará a ser un Servidor SQL aceptable, pero ahora mismo para mi, le viene como anillo al dedo la denominación de nuevo dBase, puesto que simplemente es un archivo de datos, sin posiblidades cliente / servidor. Saludos. |
Hola,
algunos comentarios: Cita:
Cita:
Cita:
Saludos. |
Hola.
Cita:
Cita:
Cita:
Por cierto, si os quereis divertir un rato, viendo la cantidad de comportamiento no estándar de MySQL, no dejeis de visitar este documento : http://sql-info.de/mysql/gotchas.html Saludos. |
Hola,
Cita:
Cita:
* MaxDB es la versión de MySQL (como empresa, no como producto) de la versión Open Source de SAP-DB. * InnoDB y Berkeley database (BDB) storage engine son los dos motores de almacenamiento que proporcionan control transaccional a MySQL. * MySQL-ISAM es el motor de almacenamiento estándar (y que no da control transaccional) a MySQL. Cita:
Cita:
Proceso servidor <-> Procesos clientes Cita:
Saludos. |
Hola.
Cita:
Lo único que quería resaltar es que aún mantiene un modo para trabajar sin transacciones, porqué en el modo con transacciones han tenido que sacrificar rendimiento, que es la principal virtud que promocionan. Cita:
En una aplicación Clipper de hace 10 años, también se podía ubicar la base de datos sobre un Servidor de Red que proporcionaba el almacenamiento. Pero no por ello se llamaban aplicaciones Cliente/Servidor. MySQL no proporciona mucho más que eso : Almacenamiento. ¿ Como se puede procesar en el Servidor sin Triggers ni SP's ?, cualquier cosa que se quiera hacer, hay que bajar los datos al cliente, procesarlos y enviarlos de vuelta al Servidor. No encuentro una buena definición del Paradigma de las aplicaciones Cliente/Servidor, así que acepto que una aplicación MySQL pueda entrar en esa definición para otra persona. Pero para mi le falta mucho para serlo, en su estado actual lo considero poco más que un dBase optimizado. No digo que sea un mal producto, lo poco que hace, lo hace rápido (puse bien y rápido, pero he quitado el bien, he recordado como me partí de risa al leer la lista de gotchas de MySQL). Pero el tema del debate es si es una base de datos menor de edad, y en ese punto no resiste la menor comparativa con otras Bases de Datos como Oracle, PostgreSQL, SQL Server, DB2, Firebird, ... A su versión estable actual le faltan tantas, tantas, tantas funciones, que me niego en redondo a llamarla incluso un Servidor SQL. Marto, por favor si encuentras la comparativa con Oracle y SQL Server, no dejes de publicarla aquí (o directamente en el Foro de Humor :D), me gustaría pasar un buen rato al leerla ;). Veremos con el tiempo como evoluciona. Pero su última versión estable, en mi opinión, es efectivamente un producto altamente limitado y immaduro. Saludos. |
Hola,
Cita:
Cita:
Cita:
Cita:
Cita:
Saludos. |
se que mysql es actualmente una base de datos que soporta transacciones, integridad referencial, un lenguaje de consultas completo y en definitiva, la mayoria de las posibilidades que ofrecen las bases de datos relacionales como Interbase, Oracle e incluso Access.
pero por desgracia, cuando contratas un hosting en una pagina web con mysql incorporado te das cuenta que la mayoria de las empresas ofrecen un mysql limitado: sin transacciones, sin integridad referencial y con un lenguaje de consultas muy limitado. porque? en principio creo que es para no cargar al servidor, ya que tiene que atender multiples peticiones a bajo coste. osea, que por muy sotisficado que sea actualmente mysql, los servidores web siempre van a ofertar una version reducida. a no ser que conozcais una empresa de hosting que ofrezca un servicio mysql completo (transacciones, etc.. etc..) si la conoceis decidmelo. |
Cita:
Saludos. |
realmente esa es la filosofia del producto, ofrecer un servicio mas o menos decente a bajo coste.
por eso uno se asombra al ver como una base de datos que surgio con tan pocas prestaciones tuvo tanto exito. hay que pensar en terminos economicos. para la mayoria de las empresas era la mejor opcion. otra cosa es que hayan decidido crear un producto maduro y que pueda competir con otras bases de datos. de todas formas mysql es la base de datos que ofrecen muchas compañias y ellas van a seguir siendo fieles a la filosofia original. |
Cita:
No ha sido muy divertido para mi, pues me ha preocupado sobremanera algunos asuntos que eran de mi total desconocimiento... lo admito, a investigar sobre mySQL no he podido dedicarle mas de unas pocas horas... y lo he tomado como "otro" servidor SQL, simplemente sin transacciones y sin integridad. Pero el tratamiento que da a los NULL me parece realmente triste, por no hablar de las divisiones por cero. Todos, problemas que estoy acostumbrado a delegar al servidor y esperar que este responda si algo va mal... no que simplemente "procese a su gusto" estas condiciones. El comportamiento del test "bounds_text" me parece que es una muestra de lo loejos que han querido llegar, manejando por si mismos condiciones de error que debieran atañar solamente a quien desarrolla sobre la base de datos, y no a la base de datos en si. Gracias, amigo marc, por la información y marto por haber iniciado este debate. Creo que despues de esto realmente dejaré de considerar a mySQL como un candidato serio para aplicaciones "reales". Es mas, tengo un proyecto en puerta, donde tengo pensado usar firebird en la aplicación "real", y via proceso, subir algunas cosas que deben estar disponibles solo para consulta en la web, a mySQL. Asi mantendré el asunto -que sinceramente ya estaba pensando re-evaluar mi decisión original- ya que pocas veces sacrificaría características por el simple desempeño. De todas formas, si esa fuera mi filosofía, no creo ni siquiera que utilizara mySQL. Me quedo con mi viejo y querido B'trieve, que hace palidecer a Firebird, y quizas hasta la mayoría de instalaciones de Oracle (no dudo que también a mySQL) en lo que a desempeño se refiere y ese si que tenía transacciones... (operaciones a bajo nivel: begin_tran, end_tran y cancel_tran), sin siquiera atreverse a llamarse una base de datos :eek:. Hasta luego. ;) |
La franja horaria es GMT +2. Ahora son las 01:15:35. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi