Pull to refresh

Comments 55

уже было многократно, ничего холиварного тут нет

ну а тест, очередной «сферический конь в вакууме»
UFO just landed and posted this here
Спасибо, учтем при дальнейших тестах.
Как понимать «Mysql против Sql Server»? А mysql, по вашему, не sql server?
Я бы тоже опускал, особенно в доках по Microsoft SQL Server на сайте microsoft.com. Но это не меняет того факта, что в заголовке бред написан.
есть подозрение что нет ;)
Sql Server — название продукта Databases Server, которым и является тоже MySql, то есть MySql явно DataBase Server.
Вы когда нибудь употребляете словосочетие «Скуль Сервер» в отношении других продуктов, кроме Sql Server, что то сомневаюсь.
Маленькая коррекция. Все такие продукты называются DBMS (СУБД, по-русски) — Database Management Server (Система Управления Базами Данных).

Но по сути все правильно. Microsoft SQL Server уже так давно так называется, что педалировать эту тему может только холиварщик.
Нужно не забывать, что MySQL имеет более простой функционал и рассчитан на WEB среду а MSSQL больше на корпоративные приложения.

Нужно не забывать, что это всё же по разному работающие базы. Схема базы, работающая на одном сервере на ура не обязательно в идентичном виде будет настолько же хорошо работать на другом сервере. Тут вам нужно как минимум поработать над индексами и скорее всего запросы тоже будут отличатся.

Насчёт бесплатности, ну выйдет ваша база за объёмы 2GB и вуаля — надо покупать лицензию. А если нагрузка на проект растёт и уже надо 2 сервера? Вот вам уже надо 2 лицензии. Причём не забывайте про то, что у вас должен быть серверный Windows.

Я за то, что бы всё-же применять каждый инструмент для той области, где он лучше всего работает. А это значит что MSSQL для сложных приложений, где нужен весь его функционал. Если же у вас WEB проект, как правило MySQL более удачный выбор, особенно если там в основном обычные SELECT.
Конечно. Собственно, я и не подталкиваю к выбору той или иной платформы. У меня много сайтов (и довольно нагруженных) крутится на MySql и ничего. Просто относительные цифры тоже порой посмотреть интересно.
Хотя есть и простенькие сайты на MSSQL — просто потому, что они созданы на ASP.Net.
Цены на лицензии MS вполне могут компенсироваться стоимостью железа, если MS SQL на реальной задаче окажется так же эффективен, как в этой статье.
Там ограничение в 4Гб, 2Гб было в MSDE, который от движка 2000 сервера. Так же там ограничение на 1 процессор.
Вот по этим тестам видно, что MySQL начинает проигрывать, когда несколько запросов выполняются одновременно. Так что именно для веба, где параллельное обслуживание запросов пользователя — это самое главное условие, мускул должен проигрывать.

Опять же, если ваш проект вырос до 4 гигабайт чистых данных, вы, наверное, можете позволить себе и железо, и софт. Иначе зачем все это было?
Не забывайте что человек не выложил ни каких настроек, и судя по всему для MySQL они дефолтные. А innodb_buffer_pool там весьма маленький.

Из графика видно, что запросы выполняются до 0.8 секунды, а это зверски долго. Это значит что что-то не так с конфигурацией. У меня mysql обслуживает порядка 820 запросов в секунду, что ну никак не сходится с данными тестов. Железо у меня вполне обычное — 2x Quad Intel Xeon 2.4GHz, 8GB RAM, SAS диск на 15к rmp. База отъедает в пиковые нагрузки (выходные вечер) порядка 150% ресурсов, т.е. 1.5 ядра, ну округлим и получается что хватает 20% мощьности от всего сервера. Работал с mysql cервером, примерно такой-же конфиг, только там был железный райд на 8 дисков — держали порядка 3500-4000 запросов и ещё был запас.

ghost ~ # mysqladmin status -p
Enter password:
Uptime: 1017788  Threads: 2  Questions: 840400696  Slow queries: 44867  Opens: 102740  Flush tables: 1  Open tables: 512  Queries per second avg: 825.713
ТС, покажите тесты под Linuxом — для веб-сервером это более актуально. :)
Как же покажешь под линуксом тест MS Sql Server? :) Хотя я в последнее время большинство проектов перевел на Windows-хостинг, где уже можно выбирать.
Ну а раз MS Sql Server под никсами не работает, то почему же он по всем параметрам лучше MySQL? Серьезные сервера у серьезных людей работают под серверными ОС ;)
Опечатался

… под сетевыми ОС… которые и предназначены быть серверами
Сегодня «сервер» уже необязательно означает *nix. Много и виндовых серверов. Если сравнивать Sql server под win, а mysql под никсами — эксперимент будет менее корректным, т.к. окружение разное.
Вы бы очень удивились, узнав на каких серверах до сих пор хостится microsoft.com :)
Можно MySQL тестировать под Win и под Linux и сравнивать с MSSQL под win.
Значит под их рабочими ОС. Под разными, но на одном железе. С оптимизированными конфигами. На реальной задаче.
Можно еще улучшить график и prepared-запросами :)
какое-то странное сравнение.

В каком аспекте вы сравниваете?

Сравните возможность делать self-join с временными таблицами.
update с ссылкой на вшений запрос.

А это очень нужные функции.
Покажите как MySQL с этим справляется.
Я написал, что пока тест довольно простенький. Скорее всего, мы расширим список запросов с учетом всех высказанных здесь пожеланий и попозже приведем обновленные сведения.
Всегда убивали тесты без конфигов БД.
MySQL поумолчанию настроен очень скромно, насколько я помню там размер буфера для ключей порядка 16 mb.
Как думаете сколько стоит у MSSQL по дефолту?
Насколько я знаю, в MSSQL таких параметров вообще нет :)
:-D да ладно вам, он вытесан из камня и идеален по определению? :-D что его не надо настраивать?
Надо, но с ним не все так запутанно как с mySQL
помоему с MySQL всё проще некуда.
Есть таблица.
Есть запросы.
Запрос*Время выполнения*Частоту = Нужные вам ключи (Explain и лог медленных запросов вам в помощь)
Далее есть суммарный размер ключа, вот если он влазит в память и индекс правильный всё будет просто летать, а если нет упрётся в винт (SHOW STATUS и т.д. помогут вам так же).
Не знаю про что вы, а я про настройки :)
C mssql все так же — главное чтобы все могло поместиться в память
Так вот в данном тесте, mysql был ненастроен, а т.к. базовые настройки у него более чем скромные, конечно же он показал производительность меньше чем mssql :) поэтому я считаю весь пост некорректным.
Все базы работают быстро если грамотно расставлены ключи и эти самые ключи влазят в память. А b+ tree у всех практически одинаковое. Так что курите размер буферов в конфиге и расставляйте ключи поумному, explain вам в руки и myisam для небизнес логики.

>Никакие оптимизации не проводились ни на одном из серверов.

Вы всерьез считаете, что на реальных продакшнах никто этого не делает?

Ф топку
На мой взгляд, не выигрывает Mysql и по критерию бесплатности: у Sql Server есть бесплатная Express-версия, которая, в отличие от конкурента, может быть использована в коммерческих разработках без лицензионных ограничений.

Мой мозк сломан.
Единственное ограничение мускуля в коммерческом плане, известное мне — это возможность изменить его исходные коды и сделать код закрытым (т.н. исключение из открытой лицензии) за определенную денежку. mssql-e, судя по всему, тоже открыт всем желающим, ага.
Не только. Если вы разрабатываете продукт на его основе, то он должен быть тоже open-source.
Да, и это бесплатно. А если хочешь не открывать исходники — заплати и получишь свое исключение из свободной лицензии.
Вот именно — заплати. А Sql server express можно использовать в закрытых продуктах без оплаты.
давайте еще раз: использовать сам продукт можно бесплатно в обоих случаях (сайты там и вообще любая система).
Но, для mysql, как для opensource, есть дополнительная возможность — изменить исходники. Так как это копилефт, измененные исходники (и связанные с ними напрямую части ПО — в том числе корпоративные) тоже должны быть открыты. Если же кто-то не хочет открывать исходники — он может заплатить денежку и получить исключение из открытой лицензии.
Так вот, в mssql НЕЛЬЗЯ посмотреть/изменить исходники.

Различайте, пжлст, использование opensource как продукта и как основы для модификации исходников.
Вы за Windows Server и клиентские лицензии платить не собираетесь?

А зря :-)
Ничего нового, глупо сравнивать продукты разных ниш, всё равно что сравнивать машины разных классов.
МС это продукт энтерпрайз уровня. а мускул это «фалос с гвоздями» (ц) баш :)

Тут подозреваю будет более справедливо сравнить posgresql с мс скулом
Неправильно тестировать SQL сервера с помощью приложения на .net. Вы наверняка использовали разные провайдеры для работы.
Где гарантия, что полученные результаты характеризуются быстродействием SQL сервера, а не провайдера?
Конечно такой расклад может быть. Но для подключения к Mysql использовал рекомендуемый ими MySql Connector .Net.
Эээ, ну во первых и в последних какой смысл сравнивать неоптимизированные базы и сервера? Сравнивать дефолтные параметры?

А так да — MS SQL будет быстрее читать при прочих «равных», поскольку уровень изоляции в нем ниже.
Согласен, с оптимизацией тоже нужно провести эксперимент. Сил на него только нужно больше — найти двух спецов по базам данных, чтобы они по максиуму закрутили гайки :)
объясни мне, нахуя тестировать без кеширования? в реальной жизни есть кеширование
UFO just landed and posted this here
Это уже преувеличение, хотя в целом mysql — 2109, а mssql — это су-37 :)
Sign up to leave a comment.

Articles