Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MySQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=21)
-   -   MySQL Vs Firebird (https://www.clubdelphi.com/foros/showthread.php?t=89150)

subzero 05-10-2015 01:47:29

MySQL Vs Firebird
 
Hola... de antemano agradezco... pienso iniciar un nuevo proyecto, siempre he venido trabajando con Firebird pero quisiera darme la oportunidad de hacerlo con MySQL pero quisiera saber:

- Cuántas BD simultaneas puede atender MySQL y FireBird
- Es totalmente recomendable utilizar MySQL para proyectos WEB.
- MySQL puede manejar solo un archivo como BD igual que Firebird.

Bueno espero sus siempre valiosas respuestas...

Ñuño Martínez 05-10-2015 11:06:29

Hola,

Cita:

Empezado por subzero (Mensaje 497562)
- Cuántas BD simultaneas puede atender MySQL y FireBird

En este punto me has pillado. Pero seguro que en ambos casos son muchas más de las que vas a necesitar. De lo contrario, ninguna de las dos se usarían en desarrollo web.
Cita:

Empezado por subzero (Mensaje 497562)
- Es totalmente recomendable utilizar MySQL para proyectos WEB.

Por que supuesto no. Me explico: Depende de lo que quieras hacer. La principal ventaja de MySQL/MariaDB sobre Firebird es que está de moda, así que encontrarás mucha información. En el resto de aspectos, son diferentes pero no totalmente mejores o peores.

Una cosa que es, al mismo tiempo, buena y mala de MySQL/MariaDB es que puedes seleccionar entre varios motores de base de datos (MyISAM, CSV, MRG_MyISAM, BLACKHOLE, FEDERATED, PERFORMANCE_SCHEMA, ARCHIVE, MEMORY, InnoDB y Aria, en mi versión), lo que es bueno porque cada uno tiene sus fuerzas y sus debilidades (más rápido, o más seguro, o más eficaz según lo que hagas). La contra es que la mayoría de las veces nadie comprueba este aspecto y usan siempre MyISAM, que es rápido en inserciones y consultas, pero tiende a fragmentarse, no tiene transacciones (lo cual puede derivar en corrupciones de datos o bloqueos) y necesita más mantenimiento que otros motores.

Cita:

Empezado por subzero (Mensaje 497562)
- MySQL puede manejar solo un archivo como BD igual que Firebird.

Por lo que sé, depende de la configuración. Creo que sí es posible que cada base de datos esté en un archivo separado, pero creo que también es posible que todas las bases de datos estén en un único archivo.

Si lo preguntas por el tema de copias de seguridad, no es recomendable; es mejor exportar la base de datos usando alguna de las herramientas disponibles en el paquete MySLQ/MariaDB.

Todo esto dicho desde la experiencia personal de lustros usando MySQL y ahora MariaDB.

roman 05-10-2015 17:02:47

Cita:

Empezado por Ñuño Martínez (Mensaje 497566)
De lo contrario, ninguna de las dos se usarían en desarrollo web.

¿Qué desarrollos web hay usando Firebird?

¿Qué ventajas le ves a MariaDB sobre MySQL? (A mi parecer es un intento vano de Widenius de solventar su error de vender MySQL, pero en fin ... :p)

// Saludos

subzero 05-10-2015 18:07:57

Ñuño y Roman, muchas gracias por sus respuestas y si he estado investigando al respecto.... La cuestión es que Firebird la manejo hace 4 años en un proyecto WEB donde hasta el momento sobre el mismo servidor tengo trabajando 30 empresas cada una con su propia base de datos en Firebird lo que más me ha gustado es la facilidad del manejo de un solo archivo el cual se puede copiar y pegas en las diferentes plataformas sin muchos pasos.

De MySQL desconozco mucho dentro de ello que quizás no se si es así, es que por base de datos maneja varios archivos...

Ñuño Martínez 05-10-2015 18:51:37

Cita:

Empezado por roman (Mensaje 497571)
¿Qué desarrollos web hay usando Firebird?

¿Qué ventajas le ves a MariaDB sobre MySQL? (A mi parecer es un intento vano de Widenius de solventar su error de vender MySQL, pero en fin ... :p)

// Saludos

Pues hombre, no te puedo decir ninguno concreto, pero he visto foros, tiendas web y marcos de desarrollo en PHP que permiten usar Interbase/Firebird. phpBB, por ejemplo. En cuanto a su implantación, pues no sé qué porcentaje tendrá, pero seguro que es pequeño, y que la razón es más desconocimiento que otra cosa.

En cuanto a MariaDB vs. MySQL, ahora uso MariaDB únicamente porque mi Fedora 22 lo tiene en el repositorio por defecto, mientras que MySQL está pero como alternativa. Hasta ahora no he visto diferencia alguna, ni siquiera a nivel de código ya que el API es idéntica, hasta donde he llegado a usarlo. En cuanto a rendimiento, la verdad es que ni lo he mirado, así que no lo sé.

Al González 05-10-2015 22:17:17

Cierta empresa dedicada al desarrollo de componentes Delphi tenía toda la información de su sitio Web enteramente almacenada en una base de datos Firebird. Estoy hablando de hace ocho años y no se presentaba ningún problema, por lo que ahora seguramente es más fácil hacerlo. El proveedor de alojamiento se encontraba, si mal no recuerdo, en algún lugar de Texas.

:p ¡No imaginen un arbusto rodante, por favor! Es verídico.

Casimiro Notevi 05-10-2015 23:06:53

Con firebird, hay muchísimos ejemplos, pero por poner uno que me llamó la atención, la de esta web de una inmobiliaria que además de millones de registros, lo que más me sorprendió es que usa mi costumbre :) de guardar las imágenes en la base de datos. Dicen que tienen unas 200 millones de imágenes en una sola tabla :)


Cita:

Name, Title and Company : Arkadia Real Estate, ceo
Link : http://us.arkadia.com
Opinion : Arkadia manage more than 12 000 000 real estate properties around the world with for exemple around 200 millions pictures in just one table! off course all of this inside the firebird database engine. With this big amount of pictures in the database, we faced few problems but thanks to the Firebird support we was fastly able to correct them (ie: create a pool of parametized query for exemple and not only a pool of connection).
Contacts : Stéphane vander clock

tmsanchez 05-10-2015 23:50:17

Otro ejemplo exitoso de FIREBIRD es el que comentan aquí:

http://www.firebirdsql.org/file/comm..._IBSurgeon.pdf

Algunos datos que mencionan:

Pharmaceutical distributor Russia
•24x7 work mode for 2 warehouses (16000 sqm+ 7000 sqm )
•12x7 work mode for office
•400 peak users
•75 Gb database size
•64 Gb RAM, RAID 10 (Dell Storage), Xeon 4x6 cores

Saludos.

subzero 06-10-2015 00:36:04

Excelente... ya que estamos en este tema algo que aun no me queda claro es cuántas BD simultaneas pueden ser ejecutadas en Firebird? (mi tercera pregunta)

Casimiro Notevi 06-10-2015 00:41:02

¿Qué quieres decir exactamente con simultáneas? ¿Poder tener conectadas varias al mismo tiempo?
Si esa es la pregunta, todas la que quieras, mientras tengas memoria, recursos, etc.

mamcx 06-10-2015 00:57:01

Cuando tu tienes el control del stack de una aplicación, usa lo que quieras. Hay toda una amplia gama de servicios y aplicaciones que usan bases de datos mucho mas exoticas que Firebird, asi que no hay razon para no usarlo.

Mientras que se puede usar MySql de forma responsable y eligiendo bien su configuracion, MySql es el javascript/php de las bases de datos: Puedes corromper la información si la miras mal y no te sabes los multiples casos y sub-casos especiales de como no o si debes hacer las cosas:

http://blog.ionelmc.ro/2014/12/28/te...choices-mysql/

Mejor dicho: Si quieres una base de datos *confiable*? MySql es la *ultima* opcion en el mundo relacional.

subzero 06-10-2015 15:40:52

Bueno, quiero agradecer a todos por sus respuestas, continuaré con Firebird y espero poder comentarles como va mi nuevo proyecto.


Saludos!

roman 06-10-2015 16:52:20

Cita:

Empezado por Casimiro Notevi (Mensaje 497592)
Con firebird, hay muchísimos ejemplos, pero por poner uno que me llamó la atención, la de esta web de una inmobiliaria que además de millones de registros


Cita:

Empezado por Sitio del enlace de Casimiro
Service Unavailable. Please try again later.

Oops! ¿Alguna otra sugerencia? :p

// Saludos

Casimiro Notevi 06-10-2015 16:56:08

A mí me funciona perfectamente.
http://us.arkadia.com/

roman 06-10-2015 16:58:19

Cita:

Empezado por subzero (Mensaje 497612)
Bueno, quiero agradecer a todos por sus respuestas, continuaré con Firebird y espero poder comentarles como va mi nuevo proyecto.

Es bueno que hayas elegido Firebird si es lo que te acomoda y sobre todo que ya lo conoces. Sin embargo me gustaría puntualizar que información como la del enlace de mamcx es prejuiciada de nacimiento. Jamás he escuchado de un sitio web cuyos datos se hayan corrompido por el uso de mysql y, desde luego, jamás me ha sucedido a mi. El hecho de que algo sea popular no necesariamente lo invalida y hay muchos, muchos sitios y plataformas web montadas sobre mysql (y para la bilis de mamcx :p, sobre php) que tienen éxito y ninguna se queja de datos corruptos. Simplemente que cuando tomas una herramienta con el dictamen previamente establecido, seguramente hallarás que no te gusta :p

// Saludos

mamcx 06-10-2015 20:00:13

Acoto lo que mencione de mysql:

Cita:

What the defaults allow:

- Storing invalid dates like '0000-00-00' or '2010-01-00' [1].
- Silently treating errors like:
-- Specifying an unavailable storage engine. It will use the default engine, silently [2].
-- Inserting invalid data. Larger strings get truncated to the maximum length. Larger integers get truncated to the maximum. Other things get converted to NULL if the column allows that. All silently [3].

....
Yes, the index on utf8 columns is limited to 255 characters [4]. If you need to store emoticons like an angry face �� - and most probably you'd want to, given the predicament - then you're out of luck, you need a different charset, utf8mb4 [5]. But that means smaller index, only 191 characters [11].
....
Noten que todo tiene enlaces a los docs. MySql permite perdida de datos, incluyendo casos en donde el *tipo* de datos se supone que no lo permite. Crear fechas que no son fechas? Guardar utf-8 pero no en el rango de utf-8? Truncar strings cuando no es el caso?

Y TODO SILENCIOSAMENTE!

Yep. Mysql, php, javascript... comparten esas idiosincracias ;)

Asi que:

Pueden estar seguros que los datos que tienen *realmente* son validos?

---

P.D: Recuerdo hace años que manejabamos Fox/dbase que exhibia algunos problemas parecidos. Nos dimos cuenta de datos corruptos en una instancia luego de que el cliente llevara varios meses operando, y solo porque alguien le dio preguntar porque cierto registro no salia (se pueden imaginar lo poco usual de darse cuenta en una tabla de cientos/miles/millones que *cierto registro* no cuadra.

Asi que "datos corruptos" no era un apunto a "daño en las estructuras fisicas" que es grave, pero visible; mas bien a "datos dentro de la tabla" que es invisible.

P.D 2:

Comparen, de la misma pagina y autores:

http://sql-info.de/mysql/gotchas.html

http://sql-info.de/postgresql/postgres-gotchas.html

roman 06-10-2015 22:08:17

Es que, lo que no cabe no cabe. Para mi es así de sencillo. No veo ningún problema en que el motor trunque un dato demasiado grande. Es responsabilidad del programador. Simplemente son particularidades de cada gestor/lenguaje.

Como dije antes, y lo reitero, jamás he escuchado de un sistema que tenga problemas por una corrupción de datos. ¿Que MySQL tiene sus bemoles? Claro que sí, y, ciertamente, no será apto para todo tipo de sistemas. De ahí a invalidarlo contra toda evidencia práctica, pues bueno, es mucho rizar el rizo.

// Saludos

roman 06-10-2015 22:15:16

Por otra parte, como en el caso de las fechas y otras cosas que mencionan en el "artículo", muchas se controlan configurando el gestor. Pero como los autores consideran que ciertas opciones deben estar por defecto, para ellos es suficiente para invalidar la herramienta, cuando es una percepción personal. Si no les gusta leer la documentación previamente y las cosas no son acorde a lo que esperaban, sinceramente ya es bronca de ellos ;)

// Saludos

mamcx 06-10-2015 22:22:52

Cita:

Empezado por roman (Mensaje 497627)
Como dije antes, y lo reitero, jamás he escuchado de un sistema que tenga problemas por una corrupción de datos.

Obvio que no, no ves que MySql silencia la perdida de datos? ;) Y como que no has oido? Te lo estoy mostrando, con fuentes! Directas de la *documentación* de mysql donde dice que PERDERAS datos!

El problema no es que no quepa. Es que la perdida de datos es *silenciosa*. MySql responde "todo ok!" cuando cualquier otro motor decente te retorna "No, no me cabe esos datos!".

Nota por ejemplo:

https://mzsanford.wordpress.com/2010...l-and-unicode/

P.D: Mientras que el problema del UTF se "arregla" cambiando de encoding, el caso que quiero que vean es que ademas hay que tener cuidado con los acentos.

Cita:

Empezado por roman (Mensaje 497627)
muchas se controlan configurando el gestor

Si delphi fuera igual, si tienes una variable tipo Date y le podes poner un dato invalido, diras que es un problema TUYO o de la HERRAMIENTA?

MySql tiene problemas fundamentales, que como muchas otras cosas los usuarios deben aprender a evadir o hacer workaround (y cuanto apuesto que muchos ni se imaginan nada de esto) es otra cosa. Pero dado el caso: Es MySql recomendable como base de datos, teniendo opciones como Postgres, firebird, oracle, etc? Pues no como real primera opcion, si nos atenemos a ser profesionales e ingenieros, en vez de mirar que es mas facil o popular.

roman 06-10-2015 22:31:31

Precisamente. Tú lo has dicho: DOCUMENTACIÓN. Esta documentado, ¡qué barbaridad! Y no. No responde a todo que ok. Genera una advertencia o un error según tu configuración. Ya si el programador decide ignorar la advertencia pues es cosa suya.

// Saludos


La franja horaria es GMT +2. Ahora son las 01:38:20.

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