Я разработчик ASP.NET, который использовал Microsoft SQL Server
для всех моих потребностей базы данных (как на работе, так и для личных проектов).
Я подумываю опробовать стек LAMP для некоторых моих личных проектов.
Каковы некоторые из основных различий между MySQL
и SQL Server
? Является ли использование хранимых процедур обычной практикой MySQL
?
Какой совет или ресурсы вы бы порекомендовали, чтобы помочь мне с переключателем?
Для тех, кто имеет опыт работы с обоими, есть ли какие-то недостающие функции от MySQL
?
источник
Многие комментарии здесь звучат скорее как религиозные аргументы, чем как заявления из реальной жизни. Я работал в течение многих лет с MySQL и MSSQL, и оба являются хорошими продуктами. Я бы выбрал MySQL в основном на основе среды, в которой вы работаете. Большинство проектов с открытым исходным кодом используют MySQL, поэтому, если вы идете в этом направлении, MySQL - ваш выбор. Если вы разрабатываете что-то с .Net, я бы выбрал MSSQL не потому, что это намного лучше, а просто потому, что это то, что использует большинство людей. Я на самом деле в настоящее время в проекте, который использует ASP.NET с MySQL и C #. Работает отлично.
источник
Lamp Stack
. Многие люди, вероятно, просто скажут LAMP или WAMP. Аналогично, вместо того, чтобы говорить «Microsoft SQL Server», мы сделали его «MS SQL Server», «MS SQL - MSSQL»Я не могу поверить, что никто не упомянул, что MySQL не поддерживает выражения Common Table Expressions (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 менее чем за 5 долларов в месяц.
MSSQL проще в использовании и имеет множество функций, которых нет в MySQL.
источник
Все в MySQL, кажется, сделано ближе к металлу, чем в MSSQL, и документация относится к этому так. Специально для оптимизации вам необходимо понять, как индексы, конфигурация системы и оптимизатор взаимодействуют при различных обстоятельствах.
«Оптимизатор» - это скорее парсер. В MSSQL ваш план запроса часто вызывает удивление (обычно хорошо, иногда нет). В MySQL это в значительной степени делает то, что вы просили, так, как вы ожидали. Это означает, что вы сами должны иметь глубокое понимание различных способов, которыми это может быть сделано.
Не построен на хорошей модели TRANSACTION (движок MyISAM по умолчанию).
Настройка файловой системы - ваша проблема.
Вся конфигурация базы данных - ваша проблема, особенно различные размеры кеша.
Иногда кажется, что лучше думать об этом как о прославленном исаме. Кодд и Дэйт не имеют большого веса здесь. Они сказали бы это без смущения.
источник
Я думаю, что одной из главных вещей, на которые следует обратить внимание, является то, что версии до MySQL 5.0 не имели представлений, триггеров и хранимых процедур.
Подробнее об этом рассказывается на странице загрузки MySQL 5.0 .
источник
@abdu
Основное, что я обнаружил в MySQL по сравнению с MSSQL, - это поддержка часовых поясов - возможность красиво переключаться между часовыми поясами при соблюдении летнего времени - это просто фантастика.
Сравните это:
к искажениям, связанным с этим ответом .
Что касается комментария «проще в использовании», я бы сказал, что дело в том, что они разные, и если вы знаете одно, то изучение другого будет сопряжено с дополнительными затратами.
источник
Оба продукта являются продуктом СУБД. Сервер Sql является коммерческим приложением, тогда как MySql является приложением с открытым исходным кодом. Оба продукта включают аналогичную функцию, однако сервер sql следует использовать для корпоративного решения, тогда как mysql может подходить для меньшей реализации. Если вам нужна такая функция, как восстановление, Репликация, Granalar безопасность и значимость, вам нужен сервер SQL
MySql занимает меньше места на диске и использует меньше памяти и процессора, чем сервер SQL
источник
Это должно быть довольно больно! Я переключил версии MySQL с 4.x на 5.x, и различные операторы больше не работали, как раньше. Анализатор запросов был «улучшен», поэтому операторы, которые ранее были настроены на производительность, теперь не будут работать должным образом.
Урок, извлеченный из работы с базой данных MySQL объемом 500 ГБ: это тонкая тема и все остальное, кроме тривиального!
источник
@Cebjyre. IDE Enterprise Manager или Management Studio лучше, чем все, что я видел до сих пор для MySQL. Я говорю «проще в использовании», потому что я могу делать много вещей в MSSQL, где у MySQL нет аналогов. В MySQL я не знаю, как настроить запросы, просто взглянув на план запроса или просмотрев статистику. Мастер настройки индекса в MSSQL выполняет основную работу по предположению о том, какие индексы отсутствуют или находятся не на своем месте.
Одним из недостатков MySQL является отсутствие максимального размера базы данных. База данных будет только увеличиваться в размере, пока не заполнит диск. Представьте себе, если этот диск совместно использует базы данных с другими пользователями, и внезапно все их запросы перестают работать, потому что их базы данных не могут расти. Я уже давно сообщал об этой проблеме в MySQL. Я не думаю, что это все еще исправлено.
источник
Потратив некоторое время на работу с MySQL от MSSQL до MySQL с синтаксисом POV, я ограничивался тем, что мог делать.
Существуют странные ограничения на обновление таблицы во время обновления той же таблицы во время обновления.
Кроме того, UPDATE FROM не работает, и в прошлый раз я проверял, что они также не поддерживают синтаксис Oracle MERGE INTO. Для меня это был выставочный стопор, и я перестал думать, что после этого доберусь до MySQL.
источник