MySQL frente a SQL Server frente a Oracle [cerrado]

78

Siempre he usado MySQL y ningún otro sistema de base de datos.

Hoy surgió una pregunta en una reunión de la empresa y me sentí avergonzado de no saber: Para un desarrollador, ¿qué funcionalidad revolucionaria ofrecen MS u Oracle que MySQL carece y que permite a MS y Oracle cobrar por sus sistemas?

Kshitij Saxena -KJ-
fuente
4
La pregunta está formulada como algo que no permite que MySQL cobre por usarlo. No hay nada que permita que MS y Oracle carguen, simplemente lo hacen. Y MySQL es simplemente diferente : código abierto. Si quisiera, podría escribir una secuencia de comandos para guardar y restaurar a medias en media hora y cobrar por ella. No necesito nada que me permita hacer eso.
Luka Ramishvili
11
Ok, pero para reformular su pregunta; ¿Por qué una persona inteligente podría considerar pagar RDBMS X cuando podría seleccionar RDBMS Y de forma gratuita?
Karl
2
No creo que esta pregunta sea precisa. MySQL no es gratuito para uso comercial (según las respuestas aquí), mientras que MS SQL Server tiene una versión que sí lo es. La oferta de MS no es tan restrictiva y permite una base de datos de 10 GB con la mayoría de las funciones habilitadas. La pregunta podría invertirse, ¿por qué pagar por MySQL cuando SQL Server es gratuito y tiene más funciones? Tal vez sea mi instalación, pero MySQL me parece lento y con errores.
MikeKulls
3
Esta pregunta parece estar fuera de tema porque se trata de la comparación de diferentes bases de datos
Noel

Respuestas:

36

Creo que otros comentaristas tienen razón al destacar todas las capacidades adicionales de RDBMS no centrales que se incluyen con las soluciones comerciales.

Aquí hay una matriz de ediciones y características de Oracle que valdría la pena explorar solo para comprender las características "adicionales", particularmente en el contexto de lo que costaría desarrollar y respaldar su propia versión de ellas (si eso es posible) en un producto como MySQL: http://www.oracle.com/us/products/database/product-editions-066501.html

Por ejemplo, si tenía un requisito que decía: "Los usuarios podrán recuperar las versiones anteriores de los datos que hayan eliminado / actualizado hasta una semana después de que se hayan confirmado los cambios", entonces eso implica una cierta sobrecarga de desarrollo que creo sería mucho más alto en un sistema que no tuviera una función incorporada como Flashback Query de Oracle.

David Aldridge
fuente
+1, buen resumen de las características de Oracle.
DCookie
Buena información sobre las características de Oracle
Héctor Minaya
23

Las capas RDBMS puras de Oracle y MSSQL ofrecen principalmente un entorno programable más maduro que MySQL e InnoDB. T-SQL y PL / SQL aún no pueden ser igualados por procedimientos almacenados y disparadores de MySQL.

Las otras diferencias son diferencias sintácticas y semánticas leves que hacen las cosas más fáciles o más difíciles (como top 500 versus límite / compensación).

Pero el verdadero asesino es que hay un montón de herramientas y servicios integrados además de las capas RDBMS de MSSQL (Reporting Services, Analysis Services) y Oracle (Data Warehousing, RAC) que MySQL no tiene (todavía).

Vinko Vrsalovic
fuente
12

¡MySQL no es gratis!

Se entiende ampliamente que es gratis, pero usted vende o distribuye paquetes de software que incorporan MySQL, tiene restricciones bastante severas. En estos casos, es gratuito solo para proyectos de código abierto u organizaciones sin fines de lucro. Si puede separar completamente la base de datos y los controladores del resto de su aplicación, y obligar a su cliente a descargar e instalar MySQL por su cuenta, probablemente esté bien.

De lo contrario, cuesta $ 2,000 / año para la edición "estándar", que es aproximadamente comparable al costo de licenciar SQL Server.

Ambas son muy buenas bases de datos, pero entre las ventajas de SQL Server se encuentran:

  • Un lenguaje procedimental rico y expresivo (T-SQL)
  • Un mejor optimizador de consultas y un mejor rendimiento en entornos de escritura intensiva
  • Un sólido conjunto de herramientas y capacidades auxiliares, incluido un entorno de programación, una herramienta ETL (SSIS), modelado dimensional (SSAS), un entorno de informes (SSRS) y un programador de trabajos razonablemente sofisticado.
  • Depuración interactiva de procedimientos almacenados y UDF.
  • Una herramienta de administración basada en ventanas relativamente fácil de usar que le permite realizar la mayoría de las tareas de administración con un simple clic.

Muchas personas se oponen ideológicamente al uso de herramientas de Microsoft o a estar encerradas en un entorno Windows, y puedo entenderlo. Pero MySQL NO es gratuito para uso comercial, y eso no parece entenderse ampliamente.

Para revisar la política de licencias de MySQL, échale un vistazo en su sitio web: http://www.mysql.com/about/legal/licensing/index.html

Brusco
fuente
Estoy de acuerdo - MySql no es gratis (no existe tal cosa como un almuerzo gratis). Sin embargo, creo que muchos de los productos de Microsoft no son tan buenos, excepto Visual Studio). Sybase parece ser una muy buena base de datos en mi humilde opinión
Ed Heal
3
Ja, en realidad yo era una de estas personas. Realmente pensé que MySQL era gratis, completamente gratis pase lo que pase. Solo una pregunta rápida, ¿tiene algunas estadísticas / enlace donde pueda ver el "mejor optimizador de consultas y un mejor rendimiento en entornos de escritura intensiva"?
John Crawford
34
Falso. La versión comunitaria de MySQL tiene la licencia GNU GPL v2, lo que significa que puede UTILIZAR el software de forma gratuita para cualquier propósito. (Si desea MODIFICAR Y REDISTRIBUIR el software, entonces el producto modificado debe ofrecerse bajo la misma licencia de código abierto GPL v2; pero su mero USO, e incluso MODIFICACIÓN (siempre que no redistribuya el producto modificado) es gratis para cualquier propósito sin condiciones.)
Luca
Eso no es del todo bien. Consulte las siguientes preguntas frecuentes en gnu.org: gnu.org/licenses/old-licenses/…
Curt
9
Curt, (1) no estamos hablando de incorporar MySQL en otro programa, sino de usarlo como un software separado (en una arquitectura cliente-servidor); en su FAQ: "Si los dos programas permanecen bien separados [...] entonces puede tratarlos como dos programas separados" (2) incluso si realmente incorpora MySQL en un software propietario (es decir, lo usa como una biblioteca) , no tiene que volver a licenciar su software propietario bajo GPL siempre que no lo redistribuya. En sus preguntas frecuentes: "La GPL dice que cualquier versión extendida del programa debe publicarse bajo la GPL SI SE PUBLICA ALGUNA"
Luca
9

Algunas otras cosas que Oracle tiene sobre mysql.

  • Colas
  • programación interna de trabajos
  • lenguaje de procedimiento almacenado maduro
  • tablas patitioned
  • control de acceso y auditoría de grano fino
  • fuertes funciones de recuperación (por ejemplo, flashback, rman, dataguard)
  • enlaces de bases de datos remotas
  • aplicación express
Matthew Watson
fuente
5
MySql admite tablas particionadas (explícitamente) desde 5.1. dev.mysql.com/doc/refman/5.1/en/partitioning-overview.html
Sharique
8

Hasta que administré RDBS de otros proveedores, Oracle solía repetir "los lectores no bloquean a los escritores, los escritores no bloquean a los lectores" significaba poco para mí. Realmente no sabía mucho sobre cómo manejar problemas de bloqueo en 8 años como DBA de Oracle. años de Informix y 3 o SQL Server y créame, sé mucho más sobre bloqueo.

Así que diría que, además de los comentarios sobre el soporte y las funciones que no son RDBMS, agregue el comportamiento de bloqueo.

Karl
fuente
La misma base de código básica en una tabla de filas de 1 m con cientos de lecturas / actualizaciones por segundo en el mismo conjunto de filas hará que Oracle brille y (en ese momento) hará que SQL Server se bloquee en el olvido. Sí, las cosas han cambiado, pero el punto es que, por mucho que me desagrade la corporación Oracle, su producto de base de datos es de primera categoría.
Jé Queue
El aislamiento de instantáneas de SQL Server resuelve este problema muy real con Microsoft SQL Server - agregado en SQL Server 2008
NTDLS
5

Hay demasiadas funciones para enumerarlas. Consulte la referencia de Wikipedia en el mensaje de nullptr. Pero supongo que la pregunta que se hace en la reunión es: "Para un desarrollador, ¿qué funcionalidad trascendental ofrecen MS u Oracle que MySQL se retrasa y que permite a MS y Oracle cobrar por sus sistemas y que nuestra empresa puede utilizar de manera eficaz? ?"

Todas las ventajas son realmente ventajas si se combinan con sus necesidades ...

ThinkJet
fuente
5

Clústeres de tablas de Oracle y clústeres de hash de una sola tabla (que tampoco encontrará en SQL Server).

Nils Weinander
fuente
1
Ah, clústeres hash de una sola tabla: una lectura consistente y ligera para encontrar su fila. Cosas muy interesantes ... He visto 10,000 búsquedas de filas individuales por segundo en hardware muy modesto.
David Aldridge
4

NOTA: No puedo decir nada sobre Oracle, por lo que responderé solo para SQL Server.

Bueno, por supuesto, diferencias menores en el motor de la base de datos, como la declaración MERGE, BULK INSERT, GROUPING SETs, etc.

Pero creo que la mayor parte son cosas como Integration Services, Analysis Services y Reporting Services. Esas son tecnologías importantes que, en mi opinión, valen absolutamente el dinero que cuestan.

Maximilian Mayerl
fuente
Algunas personas se ven obligadas a optar por Microsoft SQL Server debido a las limitaciones de compatibilidad y el dolor de cabeza de implementar Oracle o MySQL en sus sistemas actuales
JsonStatham
4

MySQL no ofrecía el entorno de programación más rico que ofrecían Oracle y MSSQL, especialmente en las primeras encarnaciones, cuando ni siquiera tenía procedimientos almacenados. Desde mi perspectiva, tiendo a poner la mayor parte de mi lógica de negocios en la aplicación, a través de mapeadores DAO u ORM, etc. Por lo tanto, el motor de base de datos subyacente es menos importante y, en teoría, la aplicación es transportable. Desde una perspectiva de gestión, MSSQL ofrece una serie de beneficios (muchos ya enumerados) que facilitan mucho la tarea de poseer la base de datos. Microsoft también proporciona el excelente y ligero SQLExpress para el desarrollo, con el que he encontrado fácil de trabajar y se integra muy bien en Visual Studio.

Andy Monis
fuente
2
El énfasis está en "en teoría" cuando se trata de transportabilidad, creo;) Parece ser el caso de que simplificar el código al mínimo común denominador que permite la transportabilidad en realidad fomenta el deseo de transportar, porque evitar las mejoras del proveedor generalmente coloca la base de datos en la diana para problemas de rendimiento.
David Aldridge
3

Inspirado por la respuesta de ThinkJet, creo que otro factor que entra en juego es: "¿Hasta qué punto estamos dispuestos a renunciar a la independencia de la base de datos para proporcionar un desarrollo más rápido y económico de aplicaciones de mayor rendimiento?" Si el énfasis de la compañía es que todo el código debe ser portátil entre bases de datos, entonces no tiene mucho sentido usar otra cosa que no sea el RDBMS más simple, y las mejoras y ventajas que Oracle y Microsoft han brindado no cuentan para nada.

Se necesita muy poco para romper la verdadera independencia de la base de datos, y mi filosofía es que debe dedicarse de todo corazón a aprovechar todas las funciones por las que ha pagado: mejoras de SQL, PL / SQL, etc.

Otros pueden diferir, por supuesto.

David Aldridge
fuente
3

Creo que la pregunta tiene la suposición implícita de que son las características de desarrollo las que permiten que SQL Server / Oracle se cargue. Sospecho que es más la implementación / soporte.

La copia de seguridad en caliente es una característica importante por la que vale la pena pagar, al menos para la mayoría de las instalaciones.

Para Oracle, un gran valor agregado es RAC: múltiples servidores que golpean los mismos datos (es decir, los mismos discos) sin ninguna replicación complicada. (Generalmente) no es evidente para el desarrollador.

Gary Myers
fuente
En cierto modo me lo perdí. Gracias :)
Kshitij Saxena -KJ-
1

Algunas características de Oracle que realmente me gustan son

  • Real Application Clusters, una forma bastante poderosa de crear clústeres de bases de datos
  • Vistas materializadas rápidamente actualizables, una forma muy eficiente de almacenar y actualizar los resultados de las consultas
  • Funciones analíticas (también conocidas como funciones de ventana) que permiten agrupar funciones en un subconjunto de los resultados de la consulta de manera eficiente. Esto puede evitar las autouniones en la mayoría de los casos.

Hasta donde yo sé, ninguno de estos está disponible en MySQL. Y hay muchas más funciones útiles, especialmente en la edición empresarial y sus opciones.

Karl Bartel
fuente