Рискну завести холиварную тему :)
Я думаю, чтоб все согласятся с тем, что по фукнционалу Mysql значительно проигрывает Sql Server-у. На мой взгляд, не выигрывает Mysql и по критерию бесплатности: у Sql Server есть бесплатная Express-версия, которая, в отличие от конкурента, может быть использована в коммерческих разработках без лицензионных ограничений.
Но сейчас речь не об этом. Для меня самый интересный был вопрос производительности. Тестам от производителей верить сложновато, поэтому я решил провести собственный тест.
Для этого я взял базу данных AdventureWorks и перегнал ее в Mysql (получился дамп размером около 100 Мб) с сохранением всех ключей, индексов и т.п. После чего написал тестовое приложение на .Net, которое бы гоняло одни и те же запросы по базам, причем можно варьировать количество одновременно работающих потоков. В запросы подставлялись случайные числовые и строковые значения (в условия where, order by и т.п.), чтобы они не кешировались. Никакие оптимизации не проводились ни на одном из серверов.
Ну перейдем сразу к делу :)
Простые запросы SELECT (с условиями where, order by, limit / top):

Сложные запросы SELECT (с различными join, вложенные запросы):

Пока нет запросов на вставку/удаление/обновление, нет триггеров и хранимых процедур. И пока нет исходников самой программы, дампов базы данных и т.п. Это все нужно оформлять, но если интересно – я займусь :)
Я думаю, чтоб все согласятся с тем, что по фукнционалу Mysql значительно проигрывает Sql Server-у. На мой взгляд, не выигрывает Mysql и по критерию бесплатности: у Sql Server есть бесплатная Express-версия, которая, в отличие от конкурента, может быть использована в коммерческих разработках без лицензионных ограничений.
Но сейчас речь не об этом. Для меня самый интересный был вопрос производительности. Тестам от производителей верить сложновато, поэтому я решил провести собственный тест.
Для этого я взял базу данных AdventureWorks и перегнал ее в Mysql (получился дамп размером около 100 Мб) с сохранением всех ключей, индексов и т.п. После чего написал тестовое приложение на .Net, которое бы гоняло одни и те же запросы по базам, причем можно варьировать количество одновременно работающих потоков. В запросы подставлялись случайные числовые и строковые значения (в условия where, order by и т.п.), чтобы они не кешировались. Никакие оптимизации не проводились ни на одном из серверов.
Ну перейдем сразу к делу :)
Простые запросы SELECT (с условиями where, order by, limit / top):

Сложные запросы SELECT (с различными join, вложенные запросы):

Пока нет запросов на вставку/удаление/обновление, нет триггеров и хранимых процедур. И пока нет исходников самой программы, дампов базы данных и т.п. Это все нужно оформлять, но если интересно – я займусь :)