Cuando puedo usar MySQL de forma gratuita, ¿por qué debería buscar otras bases de datos como Oracle o SQL Server?

Una respuesta solía ser que al usar un RDBMS comercial (los tres principales eran Oracle, Microsoft SQL Server e IBM DB2), se podía obtener soporte de calidad empresarial y servicios de consultoría. También había muchas herramientas sofisticadas para ajustar, monitorear y administrar estos productos RDBMS.

Esa distinción se desvanece con el tiempo. MySQL es propiedad de Oracle, y ofrecen soporte y otros servicios para MySQL. Hay varias compañías de servicios independientes que también son compatibles con MySQL (he trabajado para una, Percona). También hay una gran comunidad de herramientas gratuitas o no gratuitas para complementar el RDBMS.

He visto una fuerte tendencia de que las empresas que usaban Oracle se están cambiando a MySQL, porque el software es gratuito y los servicios de soporte a menudo son menos costosos. Las arquitecturas que utilizan muchas instancias de servidor son especialmente propensas a cambiar a software libre.

Esto lleva a otra razón por la que no cambiar: una empresa podría tener un conjunto de desarrolladores y administradores de bases de datos expertos en el uso de Oracle, y no están contentos de abandonar el sistema con el que son más productivos. He brindado soporte y capacitación para MySQL a muchos ex usuarios de Oracle que estaban bastante malhumorados por verse obligados a cambiar. Pasan mucho tiempo preguntándose cómo MySQL no tiene la función X o Y, o que el uso no es exactamente el mismo que Oracle. Supongo que están tratando de encontrar evidencia para justificar su resistencia a MySQL, y tal vez espero revertir la adopción de MySQL por parte de su compañía.

Creo que esta publicación de blog de Periscope IO explica muy bien una de las razones principales: Count Distinct Compared on Top 4 SQL Databases

Las bases de datos de código abierto son piezas de software muy buenas y muy avanzadas. Pero creo que, como lo demuestra claramente el experimento Periscope, diferentes bases de datos han puesto un énfasis diferente en las cosas que han elegido diseñar. Oracle y MySQL han invertido probablemente $ 100 de millones en sus optimizadores y otras herramientas a lo largo de los años. Son extremadamente buenos para tomar incluso SQL mal escrito y descubrir la mejor ruta de ejecución. Este no es necesariamente el foco de herramientas de código abierto equivalentes.

También hay una gran cantidad de comparaciones de características que puede hacer. Por ejemplo, Oracle admite en el disco índices de mapa de bits, que son críticos en los casos de uso de almacenamiento de datos, que ninguna de las alternativas de código abierto proporciona.

La realidad es que en cualquier conjunto nominal de datos (en relación con la potencia del hardware), el motor SQL elegido probablemente no importará demasiado para los casos de uso básico. Es cuando quiere escalar o usar características más avanzadas de los motores que las diferencias se hacen muy evidentes.

MySQL no escala tan bien como Oracle o SQL Server. Postgre no es tan compatible.

En una gran empresa, necesitas ambos. Oracle y SQL Server, con una sola máquina, pueden manejar miles de millones de filas fácilmente y aún pueden brindarle el rendimiento que está buscando.

Oracle y SQL Server tienen funcionalidades integradas que también aceleran o acortan su consulta. Ejemplo: Oracle tiene funciones analíticas como RANK, ROW_NUMBER donde puede GROUP BY diferente granularidad que la cláusula GROUP BY. La función también tiene un rendimiento ajustado para ejecutarse rápidamente. En Postgre, tendría que imitar esto con subconsultas, que es muy costoso de ejecutar. Esto no es solo funcionalidad, es rendimiento.

SQL Server escala menos que Oracle, pero se integra muy bien con la tecnología MS. Entonces, si está en Windows, la programación en .NET entonces SQL Server es mucho más rápido para el desarrollo. Puede crear una base de datos completa y entidades ER sin tocar la base de datos, haciéndolo todo a través de otras herramientas. Le ahorra dinero y esfuerzo.

Las startups y otras pequeñas y medianas empresas pueden ejecutar MySQL o Postgre sin problemas, por lo que tienden a adherirse a esas bases de datos porque son gratuitas. Si comienza con MySQL, será más barato para usted escalar con MySQL, aunque después de algún punto, en realidad es más barato si está basado en Oracle, pero porque pasar de MySQL a Oracle en ese punto es demasiado costoso, termina pagando más y se ven obligados a quedarse con MySQL.

Depende de su entorno y de sus necesidades.

Si está ejecutando una tienda de Windows pura, MySQL puede no ser una gran opción ya que la administración de la misma es diferente de la experiencia de sus amigos de Windows.

Además, Oracle y SQL Server tienden a tener otras características o complementos que no están en MySQL u otros RDBM. (No he comparado conjuntos de funciones recientemente, así que no voy a intentarlo ahora 🙂

Y como señala Greg K., el TCO es importante. Si está ejecutando un sitio con muchos datos valiosos, probablemente terminará pagando por el soporte de cualquier manera, por lo que su TCO puede no ser muy diferente.

Además, al menos en el caso de SQL Server, si desea una versión gratuita, busque en SQL Server Express Edition. Proporciona MUCHA funcionalidad de forma gratuita (obviamente con algunas limitaciones).

Las empresas utilizan una base de datos para almacenar sus “datos valiosos”. Estos datos son su activo que se requiere únicamente para ejecutar su negocio. Pagar una gran cantidad por los sistemas RDBMS está bien para que puedan proteger sus datos.
MYSQL es un sistema de gestión de base de datos de código abierto y, por lo tanto, existe un riesgo si necesitan ayuda para el DBMS y si no la obtienen. Los sistemas RDBMS pagados tienen disponibles mesas de ayuda dedicadas. Por lo tanto, las empresas siempre optan por los sistemas de gestión de bases de datos pagados.

Principalmente fui DBA de SQL Server durante 15 años antes de buscar un cambio e ir a una tienda de mysql solo hace unos años. No hay un día que pase que no me pierda algo que tenía en SQL Server que le falta a MySQL. Eventos extendidos, Profiler, planes de consulta complejos, paralelismo, procedimientos almacenados precompilados, Agente SQL, servicios de informes y mucho más. Podrá solucionar problemas más rápidamente y resolver problemas más complejos porque las herramientas son mucho más avanzadas. Por supuesto, hay un costo para ese mejor servidor y herramientas, pero si solo está mirando el costo inicial y no el costo total de propiedad, entonces creo que está cometiendo un error.

Hay muchos otros factores en lo que se llama “costo total de propiedad” (TCO) además de las tarifas de licencia. Es posible que no tenga habilidades internas en la base de datos de código abierto (o que su grupo pueda tener un conocimiento profundo en una base de datos “payware” particular), que tenga un código heredado que use la base de datos “payware”, que ya haya pagado licencias de toda la empresa o tener buenos acuerdos de licencia con un proveedor en particular, etc.

Es probable que haga un cambio en algo tan importante como un DBMS solo si se está embarcando en un nuevo proyecto grande, o si tiene una situación “nueva” (sin desarrollo o infraestructura existente) como una startup o una nueva iniciativa importante de la compañía eso implica contratar, construir un nuevo centro de datos, etc.

El argumento de la “calidad” es cada vez menos relevante, ya que muchas compañías usan MySQL o PostgreSQL para almacenar datos críticos, pero pueden y existen argumentos bastante racionales para que las compañías usen sistemas “payware” en muchas situaciones.

Y lo digo como alguien que ayuda a ejecutar un mundo de software de misión crítica de múltiples centros de datos que es utilizado por cientos de clientes empresariales y se basa en MySQL y PostgreSQL. Tenga en cuenta que * pagamos * por “soporte empresarial” para ambos, por lo que no son completamente “gratuitos”, pero son mucho más baratos de lo que serían para las bases de datos “payware”. Pero también tenemos un profundo conocimiento interno en ambos …

En la mayoría de los casos, las bases de datos de código abierto funcionarían bien y no hay necesidad de pagar por Oracle o MS SQL. Sí, ambos proporcionan características raras, algunas de las cuales todavía no están presentes en MySQL / PostgreSQL. Pero la mayoría de las empresas pueden vivir sin ellas.

Por otro lado, si la organización tiene buenos DBA que se están especializando en una base de datos particular, es aconsejable considerar elegir esa base de datos.

PD: en Windows no usaría ninguna base de datos excepto MS SQL.

Si quieren responsabilidad y apoyo pagado. A muchas empresas les gusta tener una relación sólida con un proveedor que pueda responder a sus problemas de manera profesional y con alguien a quien puedan levantar el teléfono y gritar si algo sale mal. Eso no quiere decir que no haya compañías similares que ofrezcan soporte corporativo para MySQL y PostgreSQL (incluido Oracle, por supuesto), pero algunas empresas prefieren ese nivel de seguridad.

Riesgo y responsabilidad.

¿Tiene las habilidades internas para administrar la base de datos: MySQL u Oracle?

¿Es su caso de uso tan específico que puede requerir cambiar la forma en que funciona su base de datos? En caso afirmativo, ¿es más barato contratar desarrolladores de MySQL o pagar a Oracle por nuevas solicitudes de funciones?

¿Cuál es el costo para usted y sus clientes si pierde todos los datos debido a un error en la base de datos? ¿Tendrás una pérdida financiera tan grande que hundirá tu negocio? ¿Quiere correr ese riesgo o cubrirlo contra Oracle (a un costo)?