mismo - qué diferencias existen entre sql server y mysql
Diferencias entre MySQL y SQL Server (12)
¿Alguien tiene alguna buena experiencia con un "puerto" de una base de datos de 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 funcionarían como solían hacerlo. El analizador de consultas se "mejoró", por lo que las declaraciones que anteriormente se ajustaban para el rendimiento ya no funcionarían como se esperaba.
La lección aprendida de trabajar con una base de datos MySQL de 500GB: ¡es un tema sutil y cualquier otra cosa que no sea trivial!
Soy un desarrollador de ASP.NET que ha utilizado Microsoft SQL Server
para todas las necesidades de mi base de datos (tanto en el trabajo como para proyectos personales).
Estoy considerando probar la pila LAMP para algunos de mis proyectos personales.
¿Cuáles son algunas de las principales diferencias entre MySQL
y SQL Server
? ¿El uso de procedimientos almacenados es una práctica común en MySQL
?
¿Algún consejo o recurso que recomendarías para ayudarme con el cambio?
Para aquellos que tienen experiencia con ambos, ¿faltan características de MySQL
?
@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 consulta o mirando las estadísticas. El asistente de ajuste de índice en MSSQL toma la mayor parte del trabajo de adivinar qué índices faltan o están fuera de lugar.
Una deficiencia de MySQL es que no hay un tamaño máximo para una base de datos. La base de datos simplemente aumentará de tamaño hasta que llene el disco. Imagine si este disco está compartiendo bases de datos con otros usuarios y de repente todas sus consultas están fallando porque sus bases de datos no pueden crecer. He informado este problema a MySQL hace mucho tiempo. No creo que esté arreglado todavía.
@abdu
Lo principal que he encontrado que MySQL tiene sobre MSSQL es el soporte de la zona horaria: la capacidad de cambiar muy bien entre zonas horarias, respetando el horario de verano es fantástica.
Compare 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 "más fácil de usar", diría que el punto es que son diferentes, y si conoces uno, habrá una sobrecarga para aprender el otro.
Ambos son DBMS. El servidor Sql es una aplicación comercial, mientras que MySql es una aplicación de opensouces. Tanto el producto incluye una característica similar, sin embargo, el servidor sql se debe usar para una solución empresarial, mientras que mysql puede ser una implementación más pequeña. replicación, seguridad granalar y significativa, necesita servidor sql
MySql ocupa menos espacios en el disco y utiliza menos memoria y CPU que el servidor sql
Creo que una de las principales cosas a tener en cuenta es que las versiones anteriores a MySQL 5.0 no tenían vistas, desencadenadores y procedimientos almacenados.
Más de esto se explica en la página de descarga de MySQL 5.0 .
Es más probable que MySQL tenga problemas de corrupción en la base de datos, y no los arregla automáticamente cuando suceden. He trabajado con MSSQL desde la versión 6.5 y no recuerdo ningún problema de corrupción de la base de datos que haya dejado la base de datos fuera de línea. Las pocas veces que trabajé con MySQL en un entorno de producción, un problema de corrupción de bases de datos quitó toda la base de datos sin conexión hasta que ejecutamos el mágico comando "arregla mi índice dañado" de la línea de comandos.
El sistema de transacción y diario de MSSQL, en mi experiencia, maneja prácticamente cualquier cosa, incluso un ciclo de encendido o falla de hardware, sin daños en la base de datos, y si algo se descompone lo arregla automáticamente.
Esta ha sido mi experiencia, y me gustaría saber que esto ha sido resuelto 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+corruption
Francamente, no puedo encontrar una sola razón para usar MySQL en lugar de MSSQL. El problema antes 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 por mes.
MSSQL es más fácil de usar y tiene muchas características que no existen en MySQL.
Muchos comentarios aquí suenan más como argumentos religiosos que declaraciones de la vida real. He trabajado durante años con MySQL y MSSQL y ambos son buenos productos. Escogería MySQL principalmente basado en el entorno en el que está trabajando. La mayoría de los proyectos de código abierto utilizan MySQL, de modo que si se dirige a esa dirección, MySQL es su elección. Si desarrolla algo con .Net, elegiría MSSQL, no porque sea mucho mejor, sino porque eso es lo que usa la mayoría de la gente. Actualmente estoy en un proyecto que usa ASP.NET con MySQL y C #. Funciona perfectamente bien.
No puedo creer que nadie mencionó que MySQL no es compatible con las expresiones Common Table Expressions (CTE) / "with". Es una diferencia bastante molesta.
Pasé algún tiempo trabajando con MySQL desde la sintaxis de MSSQL a MySQL. POV Seguí encontrándome limitado en lo que podía hacer.
Existen límites de poca importancia para actualizar una tabla mientras refrendar la misma tabla durante una actualización.
Además, la ACTUALIZACIÓN DE no funciona y la última vez que revisé, tampoco admiten la sintaxis MERGE INTO de Oracle. Esto fue un obstáculo para mí y dejé de pensar que llegaría a algún lado con MySQL después de eso.
Todo en MySQL parece estar más cerca del metal que en MSSQL, y la documentación lo trata de esa manera. Especialmente para la optimización, deberá comprender cómo los índices, la configuración del sistema y el optimizador interactúan en diversas circunstancias.
El "optimizador" es más un analizador. En MSSQL, su plan de consulta a menudo es una sorpresa (generalmente bueno, a veces no). En MySQL, hace más o menos lo que le pediste que hiciera, de la manera que esperabas. Lo que significa que usted mismo necesita tener un conocimiento profundo de las diversas maneras en que podría hacerse.
No construido en torno a un buen modelo de TRANSACCIÓN (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 varios tamaños de caché.
A veces parece mejor pensar que es un isam ad-hoc, glorificado. Codd y Date no tienen mucho peso aquí. Lo dirían sin vergüenza.
Una cosa que debes tener en cuenta es las diferencias bastante severas en la forma en que SQL Server y MySQL implementan la sintaxis de SQL.
Aquí hay una buena comparación de diferentes implementaciones de SQL .
Por ejemplo, eche un vistazo a la sección superior 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