Различия между MySQL и SQL Server [закрыто]



Я ASP.NET разработчик, который использовал Microsoft SQL Server для всех моих потребностей базы данных (как на работе, так и для личных проектов).



Я рассматриваю возможность попробовать лампы стопка для некоторых из моих личных проектов.



Каковы некоторые из основных различий между MySQL и SQL Server? Использует хранимых процедур обычная практика в MySQL?



любые советы или ресурсы вы бы порекомендовали, чтобы помочь мне с переключиться?



для тех, кто имеет опыт работы с обоими, есть какие-то недостающие функции из MySQL?

543   12  

12 ответов:

одна вещь, которую вы должны остерегаться, - это довольно серьезные различия в том, как SQL Server и MySQL реализуют синтаксис SQL.

вот хороший сравнение различных реализаций SQL.

например, взгляните на раздел top-n. В MySQL:

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

в SQL Server (T-SQL):

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

многие комментарии здесь звучат больше как религиозные аргументы, чем заявления реальной жизни. Я работал в течение многих лет с MySQL и MSSQL, и оба являются хорошими продуктами. Я бы выбрал MySQL в основном на основе среды, над которой вы работаете. Большинство проектов с открытым исходным кодом используют MySQL, поэтому, если вы идете в этом направлении, MySQL-ваш выбор. Если вы разрабатываете что-то с .Net, я бы выбрал MSSQL, не потому, что это намного лучше, а просто потому, что это то, что использует большинство людей. Я на самом деле в настоящее время в проекте, который использует ASP.NET с MySQL и C#. Он прекрасно работает.

Я не могу поверить, что никто не упомянул, что MySQL не поддерживает общие табличные выражения (CTE) / "with" операторы. Это довольно раздражающая разница.

MySQL, скорее всего, имеет проблемы с повреждением базы данных, и он не исправляет их автоматически, когда они происходят. Я работал с MSSQL с версии 6.5 и не помню проблемы с повреждением базы данных, когда база данных отключена. Несколько раз я работал с MySQL в производственной среде, проблема повреждения базы данных взяла всю базу данных в автономном режиме, пока мы не запустили магию "пожалуйста, исправьте мой поврежденный индекс" из командной строки.

транзакция MSSQL и система ведения журнала, по моему опыту, обрабатывает практически все - включая цикл питания или аппаратный сбой - без повреждения базы данных, и если что-то испортится, он исправляет его автоматически.

Это был мой опыт, и я был бы рад услышать, что это было исправлено или мы что-то делали неправильный.

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

честно говоря, я не могу найти ни одной причины использовать MySQL, а не MSSQL. Проблема раньше была стоимостью, но SQL Server 2005 Express бесплатна, и есть много веб-хостинговых компаний, которые предлагают полный хостинг с sql server менее чем за $5.00 в месяц.

MSSQL проще в использовании и имеет множество функций, которые не существуют в MySQL.

все в MySQL, кажется, делается ближе к металлу, чем в MSSQL, и документация рассматривает его таким образом. Особенно для оптимизации вам нужно понять, как индексы, конфигурация системы и оптимизатор взаимодействуют при различных обстоятельствах.

"оптимизатор" - это скорее парсер. В MSSQL ваш план запроса часто является сюрпризом (обычно хорошим, иногда нет). В MySQL он в значительной степени делает то, что вы просили его сделать, так, как вы ожидали. Что означает, что вы вы сами должны иметь глубокое понимание различных способов, которыми это может быть сделано.

Не построен вокруг хорошей модели транзакций (по умолчанию MyISAM engine).

настройка файловой системы-это ваша проблема.

вся конфигурация базы данных-это ваша проблема, особенно различные размеры кэша.

иногда кажется, лучше думать о нем, как специальной, прославил Исам. Кодд и дата не имеют большого веса здесь. Они скажут это без всякого смущения.

Я думаю, что одна из основных вещей, чтобы следить за тем, что версии до MySQL 5.0 не имели представлений, триггеров и хранимых процедур.

подробнее об этом объясняется в MySQL 5.0 Страница загрузки.

оба продукта СУБД Sql server является коммерческим приложением, в то время как MySql является приложением opensouces.Оба продукта включают аналогичную функцию ,однако sql server должен использоваться для корпоративного решения, в то время как mysql может удовлетворить меньшую реализацию.если вам нужна такая функция, как восстановление, репликация, безопасность granalar и значительная, вам нужен sql server

MySql занимает меньше места на диске и использует меньше памяти и процессора, чем sql server

у кого-нибудь есть хороший опыт с "порт" базы данных из SQL Server в MySQL?

Это должно быть очень больно! Я переключил версии MySQL с 4.х - 5.x и различные утверждения больше не будут работать, как раньше. Анализатор запросов был "улучшен", поэтому операторы, которые ранее были настроены на производительность, больше не будут работать, как ожидалось.

урок, извлеченный из работы с базой данных MySQL 500GB: это тонкий тема и все остальное, кроме тривиального!

@abdu

главное, что я обнаружил, что MySQL имеет над MSSQL - это поддержка часовых поясов-возможность красиво меняться между часовыми поясами, уважая летнее время, является фантастическим.

сравните это:

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                                             |
+-----------------------------------------------------------------+

к искажениям, связанным с ответ.

Что касается комментария "проще в использовании", я бы сказал, что дело в том, что они разные, и если вы знаете один, будут накладные расходы на изучение другой.

@Cebjyre. IDE ли Enterprise Manager или Management Studio лучше, чем все, что я видел до сих пор для MySQL. Я говорю "проще в использовании", потому что я могу делать много вещей в MSSQL, где MySQL не имеет аналогов. В MySQL я понятия не имею, как настроить запросы, просто глядя на план запроса или глядя на статистику. Мастер настройки индекса в MSSQL берет на себя большую часть догадок о том, какие индексы отсутствуют или неуместны.

один недостаток MySQL - это отсутствие максимальный размер базы данных. База данных будет просто увеличиваться в размере, пока она не заполнит диск. Представьте, что этот диск обменивается базами данных с другими пользователями, и вдруг все их запросы терпят неудачу, потому что их базы данных не могут расти. Я уже давно сообщил об этой проблеме MySQL. Я не думаю, что это уже исправлено.

потратив некоторое время на работу с MySQL от MSSQL до MySQL syntax POV, я продолжал ограничивать себя в том, что я мог сделать.

существуют ограничения bizzare на обновление таблицы при повторном обновлении той же таблицы во время обновления.

кроме того, обновление от не работает, и в последний раз я проверил, что они не поддерживают Oracle MERGE в синтаксисе. Это было шоу-пробкой для меня, и я перестал думать, что после этого я получу что-нибудь с MySQL.

Comments

    Ничего не найдено.