Pregunta

soy un ASP.NET desarrollador que ha utilizado Microsoft SQL Server para todas mis necesidades de bases de datos (tanto en el trabajo como para proyectos personales).

Estoy considerando probar el LÁMPARA pila para algunos de mis proyectos personales.

¿Cuáles son algunas de las principales diferencias entre MySQL y SQL Server?Esta usando procedimientos almacenados una práctica común en MySQL?

¿Algún consejo o recurso que recomendaría para ayudarme con el cambio?

Para aquellos que tienen experiencia con ambos, ¿falta alguna característica de MySQL?

¿Fue útil?

Solución

Una cosa a tener en cuenta son las diferencias bastante marcadas en la forma en que SQL Server y MySQL implementan la sintaxis SQL.

Aquí hay un bonito Comparación de diferentes implementaciones de SQL.

Por ejemplo, eche un vistazo a la sección top-n.En MySQL:

SELECT age
FROM person
ORDER BY age ASC
LIMIT 1 OFFSET 2

En SQL Server (T-SQL):

SELECT TOP 3 WITH TIES *
FROM person
ORDER BY age ASC

Otros consejos

Muchos comentarios aquí suenan más a argumentos religiosos que a declaraciones de la vida real.He trabajado durante años tanto con MySQL como con MSSQL y ambos son buenos productos.Elegiría MySQL principalmente según el entorno en el que estás trabajando.La mayoría de los proyectos de código abierto utilizan MySQL, por lo que si vas en esa dirección, MySQL es tu elección.Si desarrolla algo con .Net, elegiría MSSQL, no porque sea mucho mejor, sino porque es lo que usa la mayoría de la gente.De hecho, actualmente estoy en un proyecto que usa ASP.NET con MySQL y C#.Funciona perfectamente bien.

No puedo creer que nadie haya mencionado que MySQL no admite expresiones de tabla comunes (CTE)/declaraciones "con".Es una diferencia bastante molesta.

Es más probable que MySQL tenga problemas de corrupción de bases de datos y no los soluciona automáticamente cuando ocurren.He trabajado con MSSQL desde la versión 6.5 y no recuerdo un problema de corrupción de la base de datos al desconectarla.Las pocas veces que trabajé con MySQL en un entorno de producción, un problema de corrupción de la base de datos dejó fuera de línea toda la base de datos hasta que ejecutamos la cosa mágica "arregle mi índice dañado" desde la línea de comandos.

Según mi experiencia, el sistema de registro y transacciones de MSSQL maneja casi cualquier cosa, incluido un ciclo de energía o una falla de hardware, sin dañar la base de datos, y si algo se estropea, lo repara automáticamente.

Esta ha sido mi experiencia y me alegraría saber que se ha solucionado o que estábamos haciendo algo mal.

http://dev.mysql.com/doc/refman/6.0/en/corrupted-myisam-tables.html

http://www.google.com/search?q=site%3Abugs.mysql.com+index+corrupción

Francamente, no puedo encontrar una sola razón para usar MySQL en lugar de MSSQL.Antes, el problema solía ser el costo, pero SQL Server 2005 Express es gratuito y hay muchas empresas de alojamiento web que ofrecen alojamiento completo con servidor SQL por menos de $5,00 al mes.

MSSQL es más fácil de usar y tiene muchas características que no existen en MySQL.

Todo en MySQL parece estar hecho más cerca del metal que en MSSQL, y la documentación lo trata de esa manera.Especialmente para la optimización, necesitará comprender cómo interactúan los índices, la configuración del sistema y el optimizador en diversas circunstancias.

El "optimizador" es más un analizador.En MSSQL, su plan de consulta suele ser una sorpresa (normalmente bueno, a veces no).En MySQL, prácticamente hace lo que usted le pidió que hiciera, de la manera que esperaba.Lo que significa que usted mismo debe tener un conocimiento profundo de las distintas formas en que se puede hacer.

No construido alrededor de un buen modelo TRANSACTION (motor MyISAM predeterminado).

La configuración del sistema de archivos es su problema.

Toda la configuración de la base de datos es su problema, especialmente los distintos tamaños de caché.

A veces parece mejor pensar en ello como un isam glorificado y ad hoc.Codd y Date no tienen mucho peso aquí.Lo dirían sin vergüenza.

Creo que una de las cosas más importantes a tener en cuenta es que las versiones anteriores a MySQL 5.0 no tenían vistas, activadores ni procedimientos almacenados.

Más de esto se explica en el Página de descarga de MySQL 5.0.

@abdu

Lo principal que descubrí que MySQL tiene sobre MSSQL es el soporte de zona horaria: la capacidad de cambiar agradablemente entre zonas horarias, respetando el horario de verano, es fantástica.

Compara esto:

mysql> SELECT CONVERT_TZ('2008-04-01 12:00:00', 'UTC', 'America/Los_Angeles');
+-----------------------------------------------------------------+
| CONVERT_TZ('2008-04-01 12:00:00', 'UTC', 'America/Los_Angeles') |
+-----------------------------------------------------------------+
| 2008-04-01 05:00:00                                             |
+-----------------------------------------------------------------+

a las contorsiones involucradas en esta respuesta.

En cuanto al comentario de "más fácil de usar", diría que el punto es que son diferentes, y si conoces uno, habrá una sobrecarga al aprender el otro.

Ambos son productos de DBMS. El servidor Sql es una aplicación comercial, mientras que MySql es una aplicación de código abierto. Ambos productos incluyen características similares, sin embargo, el servidor SQL debe usarse para una solución empresarial, mientras que MySQL podría adaptarse a una implementación más pequeña. Si necesita funciones como recuperación, replicación, seguridad granalar y significativa, necesita servidor SQL

MySql ocupa menos espacio en el disco y utiliza menos memoria y CPU que el servidor SQL

¿Alguien tiene buena experiencia con un "puerto" de una base de datos desde SQL Server a MySQL?

¡Esto debería ser bastante doloroso!Cambié las versiones de MySQL de 4.x a 5.x y varias declaraciones ya no funcionaban como antes.El analizador de consultas se "mejoró", por lo que las declaraciones que anteriormente estaban ajustadas para el rendimiento ya no funcionarían como se esperaba.

La lección aprendida al trabajar con una base de datos MySQL de 500 GB:¡Es un tema sutil y todo menos trivial!

@Cebjyre.El IDE, ya sea Enterprise Manager o Management Studio, es mejor que cualquier cosa que haya visto hasta ahora para MySQL.Digo "más fácil de usar" porque puedo hacer muchas cosas en MSSQL donde MySQL no tiene contrapartes.En MySQL no tengo idea de cómo ajustar las consultas simplemente mirando el plan de consultas o las estadísticas.El asistente de ajuste de índices en MSSQL realiza la mayor parte de las conjeturas sobre qué índices faltan o están fuera de lugar.

Una desventaja de MySQL es que no hay un tamaño máximo para una base de datos.La base de datos simplemente aumentaría de tamaño hasta llenar el disco.Imagínese si este disco comparte bases de datos con otros usuarios y de repente todas sus consultas fallan porque sus bases de datos no pueden crecer.Informé este problema a MySQL hace mucho tiempo.No creo que esté arreglado todavía.

Al pasar algún tiempo trabajando con MySQL desde el punto de vista de sintaxis de MSSQL a MySQL, me encontraba limitado en lo que podía hacer.

Existen límites extraños a la hora de actualizar una tabla y al mismo tiempo hacer referencia a la misma tabla durante una actualización.

Además, ACTUALIZAR DESDE no funciona y la última vez que verifiqué tampoco admiten la sintaxis de Oracle MERGE INTO.Esto fue un obstáculo para mí y dejé de pensar que llegaría a algún lado con MySQL después de eso.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top