Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 MySQL vs MSSQL (на конкретном прмере)  [new]
xplo
Member

Откуда:
Сообщений: 3
Суть задачи такова:
База данных содержит:
1. порядка 100 таблиц по 30-50 тысяч записей и множество мелких списков
2. предполагает наличие около 250 запросов различной сложности
3. около 80 пользователей одновременно
4. DB GUI: web

На выбор:
1. MSSQL Server 2005
2. MySQL Server 5

Вопрос: справится ли MySQL с задачей лучше чем MSSQL или же стоит все-таки для такой задачи воспользоваться мелкософтовской софтинкой?

З.Ы. Сам-то я лично за мускль, но мне в этом вопросе нужны объективные оценки людей, имеющих хоть какой-то вразумительный опыт по работе с БД.
5 июн 07, 15:20    [4232292]     Ответить | Цитировать Сообщить модератору
 Re: MySQL vs MSSQL (на конкретном прмере)  [new]
Зайцев Фёдор
Member

Откуда: Лужки
Сообщений: 5308
а в чём заключается задача-то ?
5 июн 07, 16:22    [4232741]     Ответить | Цитировать Сообщить модератору
 Re: MySQL vs MSSQL (на конкретном прмере)  [new]
ChA
Member

Откуда: Москва
Сообщений: 11383
xplo

На выбор:
1. MSSQL Server 2005
2. MySQL Server 5
А почему не рассматриваются другие кандидаты ?
5 июн 07, 16:53    [4232962]     Ответить | Цитировать Сообщить модератору
 Re: MySQL vs MSSQL (на конкретном прмере)  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 32912

Привет, ChA!
Ты пишешь:

ChA
xplo
  • MSSQL Server
  • MySQL Server
  • C> А почему не рассматриваются другие кандидаты ?
    эти же самые близкие.
    различаются только одной буквой.
    ну неужели не видишь?..
    а у других отличий гораздо больше...
    (и букв тоже)

    --
    With best regards, Мимопроходящий.

    Posted via ActualForum NNTP Server 1.4

    5 июн 07, 17:01    [4233014]     Ответить | Цитировать Сообщить модератору
     Re: MySQL vs MSSQL (на конкретном прмере)  [new]
    xplo
    Member

    Откуда:
    Сообщений: 3
    Зайцев Фёдор
    а в чём заключается задача-то ?


    Задача заключается в оценке производительности. Интересно узнать: сможет ли мускль справиться с такой задачей лучше MSSQL сервера? вот, собсна и все.
    5 июн 07, 17:18    [4233126]     Ответить | Цитировать Сообщить модератору
     Re: MySQL vs MSSQL (на конкретном прмере)  [new]
    softwarer
    Member

    Откуда: 127.0.0.1
    Сообщений: 67534
    Блог
    xplo
    Интересно узнать: сможет ли мускль справиться с такой задачей лучше MSSQL сервера?

    Подозреваю, это зависит в первую очередь от около 250 запросов различной сложности
    5 июн 07, 17:30    [4233219]     Ответить | Цитировать Сообщить модератору
     Re: MySQL vs MSSQL (на конкретном прмере)  [new]
    locky
    Member

    Откуда: Харьков, Украина
    Сообщений: 62034

    softwarer wrote:
    > Подозреваю, это зависит в первую очередь от *около 250 запросов
    > различной сложности*
    угу... некоторые MySQL запросы оченно коряво эмулируются на MS SQL....
    да и с формированием запросов - тоже лажа бывает... особенно в части
    limit...

    Posted via ActualForum NNTP Server 1.4

    5 июн 07, 18:29    [4233523]     Ответить | Цитировать Сообщить модератору
     Re: MySQL vs MSSQL (на конкретном прмере)  [new]
    тыц
    Member

    Откуда: центральная нигерия
    Сообщений: 4214
    locky

    softwarer wrote:
    > Подозреваю, это зависит в первую очередь от *около 250 запросов
    > различной сложности*
    угу... некоторые MySQL запросы оченно коряво эмулируются на MS SQL....
    да и с формированием запросов - тоже лажа бывает... особенно в части
    limit...
    Posted via ActualForum NNTP Server 1.4
    помню когда перешел с mysql на oracle тож долго жалел об отсутсвии limit, сейчас даже не представляю жизнь без rownum =)
    8 июн 07, 14:43    [4248070]     Ответить | Цитировать Сообщить модератору
     Re: MySQL vs MSSQL (на конкретном прмере)  [new]
    locky
    Member

    Откуда: Харьков, Украина
    Сообщений: 62034

    тыц wrote:
    > помню когда перешел с mysql на oracle тож долго жалел об отсутсвии
    > limit, сейчас даже не представляю жизнь без rownum =)

    limit даже лучше - при динамической формировании запроса нет нужды знать
    - есть клауза where или нет. rownum в этом плане хуже.
    Хотя - значительно лучше, чем эмуляция той-же хрени в MS SQL.

    Posted via ActualForum NNTP Server 1.4

    8 июн 07, 18:18    [4249583]     Ответить | Цитировать Сообщить модератору
     Re: MySQL vs MSSQL (на конкретном прмере)  [new]
    softwarer
    Member

    Откуда: 127.0.0.1
    Сообщений: 67534
    Блог
    locky
    limit даже лучше - при динамической формировании запроса нет нужды знать
    - есть клауза where или нет. rownum в этом плане хуже.

    Опуская соображения о подходе - при формировании запроса с rownum также нет необходимости думать о существовании where.

    Что, боюсь, limit вряд ли сможет выполнить, так это пронумеровать строки в выборке. Знаете, такой довольно типичный пункт всяких печатных форм - "номер по порядку".
    8 июн 07, 19:46    [4249860]     Ответить | Цитировать Сообщить модератору
     Re: MySQL vs MSSQL (на конкретном прмере)  [new]
    locky
    Member

    Откуда: Харьков, Украина
    Сообщений: 62034

    softwarer wrote:
    > Опуская соображения о подходе - при формировании запроса с rownum также
    > нет необходимости думать о существовании where.
    select * from SomeTable
    
    могу прилепить туда же просто в конец
      limit ....
    

    а как тоже самое сделать с rownum? Не задрочки ради, действительно
    интересно.


    > Что, боюсь, limit вряд ли сможет выполнить, так это пронумеровать строки
    > в выборке. Знаете, такой довольно типичный пункт всяких печатных форм -
    > "номер по порядку".
    Это да... Вот если б и то и другое было :)

    Posted via ActualForum NNTP Server 1.4

    11 июн 07, 13:02    [4255359]     Ответить | Цитировать Сообщить модератору
     Re: MySQL vs MSSQL (на конкретном прмере)  [new]
    softwarer
    Member

    Откуда: 127.0.0.1
    Сообщений: 67534
    Блог
    locky
    а как тоже самое сделать с rownum? Не задрочки ради, действительно
    интересно.

    select *
    from (<some original select>)
    where rownum ...
    12 июн 07, 00:12    [4256864]     Ответить | Цитировать Сообщить модератору
     Re: MySQL vs MSSQL (на конкретном прмере)  [new]
    locky
    Member

    Откуда: Харьков, Украина
    Сообщений: 62034

    softwarer wrote:
    > а как тоже самое сделать с rownum? Не задрочки ради, действительно
    > интересно.
    >
    > select *
    > from (<some original select>)
    > where rownum ...
    Тоже вариант, хотя и хреновый, если честно :(
    т.е. если в том же MySQL можно сделать (условно)
    exec (selectlist+fromlist+wherelist+limitlist)
    
    и регулировать поведение путем изменения limitlist, то в твоем варианте
    - надо модифицировать весь запрос...
    В MS SQL - картина еще хуже :-(((

    Posted via ActualForum NNTP Server 1.4

    12 июн 07, 12:35    [4257500]     Ответить | Цитировать Сообщить модератору
     Re: MySQL vs MSSQL (на конкретном прмере)  [new]
    softwarer
    Member

    Откуда: 127.0.0.1
    Сообщений: 67534
    Блог
    locky
    Тоже вариант, хотя и хреновый, если честно :(
    т.е. если в том же MySQL можно сделать (условно)
    exec (selectlist+fromlist+wherelist+limitlist)
    
    и регулировать поведение путем изменения limitlist, то в твоем варианте
    - надо модифицировать весь запрос...

    Довольно странное рассуждение. Попробую по пунктам.

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

    Далее, я бы предостерег от пусть даже условной, но тем не менее попытки думать в терминах select+from+where. Эта модель обламывается на нетривиальных примерах и служит вечным источником проблем вида "наш крутейший суперпупердвижок не может работать с тем запросом, который нужен". Скажем, я помню один неплохой на первый взгляд dbgrid, который рушился при попытке подсунуть ему запрос с union; все такие запросы приходилось оборачивать во view. Вопрос в принципе философский, но имхо - если автор фреймворка говорит "ну здесь у нас сложных запросов не будет", его надо немедленно выгонять по служебному несоответствию (почему фреймворка - потому что задача "универсально подсунуть" встает именно в подобных случаях).

    Реально - надо понимать, что исходным может быть абсолютно любой запрос, и наша задача - придумать способ, который будет работать всегда или почти всегда. Попытка парсить запрос, разобрать его на части чаще всего убивает это требование (а в оставшихся - требует очень нехилой трудоемкости). Обертывание в подзапрос - этому требованию чаще всего соответствует; даже если я употреблю в запросе with, group by, order by, minus и model в одном флаконе - внешний rownum таки сработает.

    Про MSSQL в данном случае ничего сказать не могу.
    13 июн 07, 14:53    [4262069]     Ответить | Цитировать Сообщить модератору
     Re: MySQL vs MSSQL (на конкретном прмере)  [new]
    locky
    Member

    Откуда: Харьков, Украина
    Сообщений: 62034

    Вообще-то, результаты получаются разные...

    select *
    from all_objects
    where rownum < 10
    order by object_name
    
    select *
    from
    (select *
    from all_objects
    order by object_name)
    where rownum < 10
    

    т.е. наложить на исходный запрос ограничение по номерам строк - не так
    просто. Кроме того (что в принципе уже неважно)- получается заметная
    "усадка" по перформансу (0,031 против 5 секунд).

    для MySQL - всё не так плохо.
    select * from (
    select * from zencart.categories_description
    order by categories_name)S
    limit 10,20
    
    select * from zencart.categories_description
    order by categories_name
    limit 10 , 20
    
    Тем более - можно просто к исходному запросу добавить limit - и получим
    то, что надо.

    В SQL2k5 - всё еще хуже, потому что запрос вида
    select *
    from sys.objects
    order by name
    

    преобразуется в нечто вроде

    select * from (
    select row_number() over(order by name) as rn,*
    from sys.objects)S
    where rn < 10
    

    т.е. вместо "дописывания" запроса (как в MySQL) или "оборачивания" (как
    в Оракле, правда толку с этого?) необходимо менять select list.

    Posted via ActualForum NNTP Server 1.4

    13 июн 07, 17:22    [4263399]     Ответить | Цитировать Сообщить модератору
     Re: MySQL vs MSSQL (на конкретном прмере)  [new]
    locky
    Member

    Откуда: Харьков, Украина
    Сообщений: 62034

    Для примеров с MySQL - просто limit 10, ессно :(

    Posted via ActualForum NNTP Server 1.4

    13 июн 07, 17:23    [4263409]     Ответить | Цитировать Сообщить модератору
     Re: MySQL vs MSSQL (на конкретном прмере)  [new]
    softwarer
    Member

    Откуда: 127.0.0.1
    Сообщений: 67534
    Блог
    locky
    Вообще-то, результаты получаются разные...

    Как Вам сказать...... вообще-то в документации по использованию rownum специально и подробно разжевана та ошибка применения rownum, которую Вы сейчас демонстрируете. На пальцах: в том синтаксисе, который Вы использовали в первом случае, движок делает именно то, что Вы ему сказали. То есть: выбирает первые десять строк и сортирует их по object_name.

    locky
    Кроме того (что в принципе уже неважно)- получается заметная
    "усадка" по перформансу (0,031 против 5 секунд).

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

    locky
    для MySQL - всё не так плохо.
    select * from (
    select * from zencart.categories_description
    order by categories_name)S
    limit 10,20

    Честно говоря, я не понимаю, зачем Вы уделяете столько внимания заведомо некорректным конструкциям.

    locky
    Тем более - можно просто к исходному запросу добавить limit - и получим
    то, что надо.

    Это какая-то религиозная разница. Объясните мне, какая разница между

    function DoLimit (const SQL: string; Min, Max: integer): string;
    begin
      Result := Format ('%s limit %d, %d', [SQL, Min, Max]);
    end;

    и

    function DoLimit (const SQL: string; Min, Max: integer): string;
    begin
      Result := Format ('select * from (select rownum r#, a.* from (%s) a) where r# between %d and %d', [SQL, Min, Max]);
    end;

    Чуть длиннее писать? Ну да.... за время беседы мы потратили времени, которого хватило бы для написания этого "длиннее" эдак в сотне-другой промышленных систем. Впрочем, учитывая, что и то, и другое все равно нельзя выпускать в production, толку-то?

    locky
    т.е. вместо "дописывания" запроса (как в MySQL) или "оборачивания" (как
    в Оракле, правда толку с этого?) необходимо менять select list.

    К совету забыть про "select list" Вы, видимо, так и не прислушаетесь....
    13 июн 07, 17:58    [4263650]     Ответить | Цитировать Сообщить модератору
     Re: MySQL vs MSSQL (на конкретном прмере)  [new]
    locky
    Member

    Откуда: Харьков, Украина
    Сообщений: 62034

    softwarer wrote:
    Я очень рад, что в документации "всё подробно расписано" :)
    Честно. И что планы разные, и все дела - не только верю, но даже смотрел.
    Меня больше не теория волнует, а практика.
    Точнее... В части Оракла меня это как раз волнует меньше всего - Оракл
    для меня сорс, но никак не таргет.

    >Это какая-то религиозная разница.
    Нет. Это - вполне себе принятая практика в написании систем.
    Не я эти практики устанавливаю, не я пишу эти системы, но я должен с
    ними что-то сделать :-(

    > К совету забыть про "select list" Вы, видимо, так и не прислушаетесь....
    Потому что у нас с Вами - задачи несколько разные.
    У Вас - "с нуля написать систему", у меня - заставить (с минимальными
    переделками) бежать уже сущствуеющую систему, изначально работающую с
    MySQL на MS SQL :)


    зы как-то мы отвлеклись от темы топега.

    Posted via ActualForum NNTP Server 1.4

    13 июн 07, 19:38    [4264125]     Ответить | Цитировать Сообщить модератору
     Re: MySQL vs MSSQL (на конкретном прмере)  [new]
    softwarer
    Member

    Откуда: 127.0.0.1
    Сообщений: 67534
    Блог
    locky
    >Это какая-то религиозная разница.
    Нет. Это - вполне себе принятая практика в написании систем.

    Брр... не понял ответа. Вы уверены, что это ответ именно на эти слова?

    locky
    > К совету забыть про "select list" Вы, видимо, так и не прислушаетесь....
    Потому что у нас с Вами - задачи несколько разные.
    У Вас - "с нуля написать систему", у меня - заставить (с минимальными
    переделками) бежать уже сущствуеющую систему,

    Вы неудачно ставите акценты. Та задача, которую стараюсь решать я - "дать системе бежать вместо ползанья". И постепенно до моих начальников доходило, что если я упорно талдычу о том, что "здесь лучше сделать так", то дешевле сразу послушаться.
    13 июн 07, 19:48    [4264157]     Ответить | Цитировать Сообщить модератору
     Re: MySQL vs MSSQL (на конкретном прмере)  [new]
    locky
    Member

    Откуда: Харьков, Украина
    Сообщений: 62034

    softwarer wrote:
    > >Это какая-то религиозная разница.
    > Нет. Это - вполне себе принятая практика в написании систем.
    >
    > Брр... не понял ответа. Вы уверены, что это ответ именно на эти слова?
    та да. Т.е. у меня нету никаких "религимозных побуждений". У меня есть
    существующий код, который надо портировать.

    > Вы неудачно ставите акценты. Та задача, которую стараюсь решать я -
    > "дать системе бежать вместо ползанья". И постепенно до моих начальников
    > доходило, что если я упорно талдычу о том, что "здесь лучше сделать
    > так", то дешевле сразу послушаться.
    Не всегда такой подход возможен - увы. Иногда приходится идти на
    компромиссы.

    Posted via ActualForum NNTP Server 1.4

    13 июн 07, 20:09    [4264227]     Ответить | Цитировать Сообщить модератору
     Re: MySQL vs MSSQL (на конкретном прмере)  [new]
    softwarer
    Member

    Откуда: 127.0.0.1
    Сообщений: 67534
    Блог
    locky
    та да. Т.е. у меня нету никаких "религимозных побуждений". У меня есть
    существующий код, который надо портировать.

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

    locky
    Не всегда такой подход возможен - увы. Иногда приходится идти на компромиссы.

    Хм. По моему опыту, такой подход возможен практически всегда, и вполне сочетается с необходимостью достижения тех или иных промежуточных целей - если, конечно, обе стороны готовы проявить должную гибкость и желание пораскинуть мозгами. Другой вопрос, что чаще всего он оказывается связан с геморроем уровня "а нафига оно мне надо?"
    13 июн 07, 20:40    [4264298]     Ответить | Цитировать Сообщить модератору
     Re: MySQL vs MSSQL (на конкретном прмере)  [new]
    locky
    Member

    Откуда: Харьков, Украина
    Сообщений: 62034

    softwarer wrote:
    > Хм. Скажем так, если есть конкретный плохой код, и его нельзя вылечить
    > подменой функции вроде той, которую предложил я - это не повод называть
    > вариант хреновым, опуская "в особых, нигде до того не оговоренных условиях".
    Ой, не обижайтесь так :)
    Я просто посмотрел на код "со своей колокольни" и расстроился.
    А особые условия и впрямь не оговорил :(
    Код - не плохой, код нормальный. Для MySQL+PHP.

    > Не всегда такой подход возможен - увы. Иногда приходится идти на
    > компромиссы.
    >
    > Хм. По моему опыту, такой подход возможен практически всегда, и вполне
    > сочетается с необходимостью достижения тех или иных промежуточных целей
    > - если, конечно, обе стороны готовы проявить должную гибкость и желание
    > пораскинуть мозгами. Другой вопрос, что чаще всего он оказывается связан
    > с геморроем уровня "а нафига оно мне надо?"
    Например, для автоматизированного портирования приложений. Либо - для
    придания "коробочкам" возможностей работы с более чем одной базой - по
    крайней мере на "переходный период".

    Posted via ActualForum NNTP Server 1.4

    14 июн 07, 12:53    [4266421]     Ответить | Цитировать Сообщить модератору
     Re: MySQL vs MSSQL (на конкретном прмере)  [new]
    borin
    Member

    Откуда: angarsk/msk
    Сообщений: 677
    locky

    тыц wrote:
    > помню когда перешел с mysql на oracle тож долго жалел об отсутсвии
    > limit, сейчас даже не представляю жизнь без rownum =)

    limit даже лучше - при динамической формировании запроса нет нужды знать
    - есть клауза where или нет. rownum в этом плане хуже.
    Хотя - значительно лучше, чем эмуляция той-же хрени в MS SQL.
    Posted via ActualForum NNTP Server 1.4


    да лана. в MS SQL делаешь пару top'ов с переворотом и все.
    29 июн 07, 16:29    [4333091]     Ответить | Цитировать Сообщить модератору
     Re: MySQL vs MSSQL (на конкретном прмере)  [new]
    locky
    Member

    Откуда: Харьков, Украина
    Сообщений: 62034

    borin wrote:
    > да лана. в MS SQL делаешь пару top'ов с переворотом и все.
    при ДИНАМИЧЕСКОМ ФОРМИРОВАНИИ SQL.
    Т.е. когда на входе уже есть сформированый запрос, который надо ограничить.
    И абсолютно не факт, что есть ПК.

    Posted via ActualForum NNTP Server 1.4

    2 июл 07, 15:03    [4338898]     Ответить | Цитировать Сообщить модератору
     Re: MySQL vs MSSQL (на конкретном прмере)  [new]
    PrazdNick
    Member

    Откуда:
    Сообщений: 20
    xplo
    для вас выбор БД зависит только от того, насколько легко ваши знания реализуют постраничный вывод?
    3 июл 07, 12:05    [4342869]     Ответить | Цитировать Сообщить модератору
    Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
    Все форумы / Сравнение СУБД Ответить