¿Las dificultades de usar MySQL como su opción de base de datos? [cerrado]

20

He leído en línea en múltiples ocasiones que MySQL es una mala base de datos. Los lugares en los que he leído esto incluyen algunos hilos en Reddit, pero nunca parecen profundizar en por qué es un producto pobre.

¿Hay alguna verdad en este reclamo? Nunca lo he usado más allá de un escenario CRUD muy simple, y eso fue para un proyecto universitario durante mi segundo año.

¿Qué inconvenientes, si los hay , existen al elegir MySQL como su base de datos?


fuente
77
El principal escollo, por supuesto, es que los fanáticos de Postgres tratarán de hacerte sentir inseguro sobre tu elección.
Dan Ray
Wikimedia lo usa, por lo que no debería ser tan malo.
Arlen Beiler

Respuestas:

32

Hay dos tipos diferentes de dificultades, las de usar MySQL como su sabor de RDBMS y las de usar un RDBMS en lugar de otros tipos de bases de datos.

Usando MySQL en lugar de RDBMS alternativos:

  • Consulte esta tabla de comparación de Wikipedia para varias comparaciones de MySQL con otros RDBMS.
  • Es muy probable que prefiera Microsoft SQL Server si está creando una aplicación web ASP.NET, ya que el sistema está diseñado para funcionar bien en conjunto, creo que tanto para desarrolladores como para gerentes de TI
  • Puede preferir Oracle si necesita una configuración de base de datos más avanzada que implique la agrupación en clúster (Oracle RAC) o procedimientos de base de datos avanzados. No es que MySQL no sea compatible con muchas de las características, pero por lo que he visto, es mucho más probable que encuentre un DBA experimentado que sepa esto para Oracle que MySQL.
  • Vea esta pregunta en SO para ver comparaciones extensas de PostgreSQL con MySQL que lo dicen mejor que yo.
  • Aún más SO: desventajas de mysql frente a otras bases de datos

Usando RDBMS en lugar de otros tipos:

Dicho todo esto, MySQL es una excelente base de datos, y no he trabajado en una empresa en los últimos 8 años que no la haya usado, en una amplia variedad de aplicaciones web (como comercio electrónico, sitios web / aplicaciones). , empresa / B2B, juegos web). Para una gran mayoría de los casos de uso de aplicaciones web típicas, es una gran opción.

Nicole
fuente
44
Gran respuesta, especialmente para MySQL vs. RDBMS y RDBMS vs. NoSQL
Josh K
1
SQL Server también tiene clustering y las características avanzadas. Pero está seguro de que tendrá más problemas para encontrar un experto en bases de datos mySQL que pueda manejar tales cosas o incluso sepa cómo diseñarlas. Esas personas se especializan principalmente en Oracle, db2 o SQL Server.
HLGEM
1
@HLGEM, gracias por aclarar eso, quise mostrar qué fortalezas tiene Oracle, no que otros DBMS no admitan esas características. SQL Server es absolutamente capaz en esas áreas, solo tiene el inconveniente natural de la dependencia de Windows para una empresa que no usa Windows para nada más.
Nicole
1
eso es absolutamente cierto, la dependencia de Windows perjudica a SQL Server.
HLGEM
8

MySQL ahora está bajo el control de Oracle, aunque de código abierto todavía deciden la dirección del proyecto y lo que entra.

En términos de ser una mala base de datos, no, es simplemente "más simple" que otras.

Si está buscando debilidades, las señalaré, tomemos PostgreSQL por ejemplo.

  1. MySQL carece de tipos de contenedores y matrices.
  2. MySQL carece de secuencias verdaderas (utilizan el incremento automático): las secuencias de Postgres permiten que varias tablas usen una sola secuencia para que pueda garantizar la cardinalidad en varias tablas.
  3. Postgres es compatible con ACID, MySQL es parcialmente compatible.
  4. Postgres implementa la variación de caracteres y el texto de la misma manera (Toast Tables): este enfoque, según la mayoría, es mejor que MySQL.
  5. Postgres solo tiene un back-end de almacenamiento, esto significa que tiene garantizadas las mismas funciones en todas partes.
  6. Postgres permite funciones del lado del servidor escritas en TCL, Python, R y Perl.
  7. Postgres tiene un buen soporte para controladores asíncronos en Python: creo que es un poco impredecible con MySQL
Ben DeMott
fuente
6

Históricamente, era débil en el soporte de transacciones, y las transacciones son importantes si necesita mantener una base de datos consistente. Hoy en día, el gran rap es que Oracle lo posee.

David Thornley
fuente
4

Durante mucho tiempo, MySQL fue más una base de datos "de juguete". No manejaba sub-selecciones anidadas, no soportaba la partición de datos, no ofrecía múltiples niveles de aislamiento de transacciones, no soportaba disparadores o procedimientos almacenados, muchas cosas. Muchas personas procedentes de Oracle o SQL Server lo descartaron.

Creo que la verdadera razón por la que no ve muchas listas de las deficiencias de MySQL es porque tiene una base de fanáticos bastante rabiosa que elimina o rechaza cualquier mención pública de ellas. Sé que cada vez que menciono algún problema que tuve con él, las respuestas tienden a ser abrumadoramente negativas.

TMN
fuente
3

MySQL es compatible con ACID cuando se usa con el motor de almacenamiento InnoDB; no hay razón para no hacerlo, por lo que MySQL es compatible con ACID (a partir de las versiones 5.5, InnoDB es el motor de almacenamiento predeterminado).

MySQL recibe mucha mala prensa porque a menudo se usa (o fue hasta el advenimiento de NoSQL) como el RDBMS elegido por personas que apenas necesitaban una base de datos (y tal vez tenían habilidades limitadas de RDBMS) y, por lo tanto, la usaron de manera bastante torpe conducta.

He usado mucho MySQL y desde que apareció 5.x hay muy poco de lo que quejarse por el 95% de las instalaciones que tienen requisitos de la mitad de la carretera.

glaucon
fuente