Я разработчик ASP.NET, который использовал Microsoft SQL Server
для всех своих потребностей в базах данных (как на работе, так и для личных проектов).
Я рассматриваю возможность попробовать стек LAMP для некоторых моих личных проектов.
Каковы некоторые из основных различий между MySQL
и SQL Server
? Является ли использование хранимых процедур обычной практикой в MySQL
?
Какие-нибудь советы или ресурсы, которые вы бы порекомендовали, чтобы помочь мне с переходом?
Для тех, кто имеет опыт работы с обеими системами, есть ли какие-либо недостающие функции в MySQL
?
Единственное, на что следует обратить внимание, - это довольно серьезные различия в том, как 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
Много комментариев здесь больше походит на религиозные аргументы, чем реальные заявления. I' ve работал в течение многих лет и с MySQL и с MSSQL, и оба - хорошие продукты. Я выбрал бы MySQL, главным образом, на основе окружающей среды, что Вы продолжаете работать. Наиболее общедоступные проекты используют MySQL, поэтому если Вы входите в то направление, MySQL - Ваш выбор. Если бы Вы развиваете что-то с.Net, я выбрал бы MSSQL, не потому что it' s намного лучше, но правое дело, именно это использует большинство людей. I' m на самом деле в настоящее время на Проекте, который использует ASP.NET с MySQL и C#. Это работает превосходное.
У MySQL, более вероятно, будут проблемы коррупции базы данных и это doesn' t фиксируют их автоматически, когда они происходят. I' ve работал с MSSQL начиная с версии 6.5 и don' t помнят проблему коррупции базы данных, выводящую базу данных из эксплуатации. Несколько раз I' ve работал с MySQL в производственной среде, проблема коррупции базы данных вывела всю базу данных из эксплуатации, пока мы не управляли волшебством " пожалуйста, зафиксируйте мой испорченный index" вещь от commandline.
MSSQL' s сделка и journaling система, по моему опыту, ручки примерно что-либо - включая цикл власти или отказ аппаратных средств - без коррупции базы данных, и если что-то испорчено, это фиксирует его автоматически.
Это было моим опытом и I' d быть рады услышать, что это было зафиксировано или мы делали что-то не так.
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] [2]
[2]: http://www.google.com/search? q=site%3Abugs.mysql.com+index+corruption
Все в MySQL, кажется, сделано ближе к металлу, чем в MSSQL, И документация рассматривает его тот путь. Специально для оптимизации, you' ll должен понять, как индексы, системная конфигурация и оптимизатор взаимодействуют при различных обстоятельствах.
" optimizer" больше анализатор. В MSSQL Ваш план вопроса часто - удивление (обычно хороший, иногда не). В MySQL это в значительной степени делает то, что Вы попросили, чтобы он сделал, способ, к которому Вы ожидали его. Что означает, что у Вас самих должно быть глубокое понимание различных путей, оно могло бы быть сделано.
Не построенный вокруг хорошей модели TRANSACTION (дефолт двигатель MyISAM).
Установка файловой системы - Ваша проблема.
Вся конфигурация базы данных - Ваша проблема - особенно различные размеры тайника.
Иногда кажется лучше думать о нем как о специальном, прославленном isam. Codd и Date don' t несут много веса сюда. Они сказали бы это без затруднения.
Откровенно говоря, я can' t находят единственную причину использовать MySQL, а не MSSQL. Проблема, прежде чем используется стоиться, но Экспресс SQL-сервера 2005 года свободна и есть много хостинговых компаний, которые предлагают полное оказание гостеприимства с SQL-сервером меньше чем за 5,00$ в месяц.
MSSQL легче использовать и имеет много особенностей, которые не существуют в MySQL.
Я думаю, что одна из основных вещей, на которые следует обратить внимание, заключается в том, что версии до MySQL 5.0 не имели представлений, триггеров и хранимых процедур.
Подробнее об этом рассказывается на странице MySQL 5.0 Download page.
Оба - DBMS' s SQL-сервер продукта коммерческое применение, в то время как MySql - приложение открытых источников. Оба продукт включает подобную особенность, однако SQL-сервер, должны использоваться для корпоративного решения, в то время как mysql мог бы удовлетворить меньшему implementation.if, Вы должны показать как восстановление, повторение, granalar безопасность и значительный, Вам нужен SQL-сервер
MySql занимает меньше места на диске и использует меньше памяти и CPU, чем делает SQL-сервер
[abdu] (#51244)
Главное I' ve нашел, что 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 |
+-----------------------------------------------------------------+
к искривлениям, включенным в этот ответ.
Что касается ' легче к use' комментарий, я сказал бы, что дело в том, что они отличаются, и если Вы знаете один, будет верхнее в изучении другого.
У кого-нибудь есть положительный опыт работы с "переносом" базы данных с SQL Server на MySQL?
Это должно быть довольно болезненно! Я поменял версию MySQL с 4.x на 5.x, и различные операторы перестали работать так, как раньше. Анализатор запросов был "улучшен", поэтому операторы, которые ранее были настроены на производительность, больше не работали так, как ожидалось.
Урок, полученный при работе с базой данных MySQL объемом 500 ГБ: "это тонкая тема" и все остальное не тривиально!
@Cebjyre. IDE или Руководитель предприятия или Студия управления лучше, чем что-нибудь, что я видел до сих пор для MySQL. Я говорю ' легче к use' потому что я могу сделать много вещей в MSSQL, где у MySQL нет копий. В MySQL я понятия не имею, как настроить вопросы, просто смотря на план вопроса или смотря на статистику. Настраивающий волшебник индекса в MSSQL берет на себя большую часть работы предположения, что индексы пропускают или неуместные.
Один недостаток MySQL - there' s никакой макс. размер для базы данных. База данных просто увеличилась бы в размере, пока это не заполняет диск. Вообразите, делит ли этот диск базы данных с другими пользователями, и внезапно все их вопросы терпят неудачу потому что их базы данных can' t растут. Я сообщил об этой проблеме MySQL давным-давно. Я don' t думают it' s зафиксированный все же.
Пребывание в течение некоторого времени, работая с MySQL от MSSQL до синтаксиса MySQL POV, я продолжал находить меня ограниченным в том, что я мог сделать.
Есть ограничения bizzare на обновление стола, ссылаясь на тот же стол во время обновления.
Дополнительно ОБНОВЛЕНИЕ ОТ не работает и в прошлый раз, когда я проверил их don' t поддерживают синтаксис Oracle MERGE INTO также. Это было выставочным стопором для меня, и я прекратил думать, что я доберусь где угодно с MySQL после этого.