powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / MySQL vs MSSQL (на конкретном прмере)
25 сообщений из 30, страница 1 из 2
MySQL vs MSSQL (на конкретном прмере)
    #34575335
xplo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Суть задачи такова:
База данных содержит:
1. порядка 100 таблиц по 30-50 тысяч записей и множество мелких списков
2. предполагает наличие около 250 запросов различной сложности
3. около 80 пользователей одновременно
4. DB GUI: web

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

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

З.Ы. Сам-то я лично за мускль, но мне в этом вопросе нужны объективные оценки людей, имеющих хоть какой-то вразумительный опыт по работе с БД.
...
Рейтинг: 0 / 0
MySQL vs MSSQL (на конкретном прмере)
    #34575584
Зайцев Фёдор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а в чём заключается задача-то ?
...
Рейтинг: 0 / 0
MySQL vs MSSQL (на конкретном прмере)
    #34575712
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xplo
На выбор:
1. MSSQL Server 2005
2. MySQL Server 5А почему не рассматриваются другие кандидаты ?
...
Рейтинг: 0 / 0
MySQL vs MSSQL (на конкретном прмере)
    #34575739
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет, ChA!
Ты пишешь:

ChA xploMSSQL Server

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

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

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
MySQL vs MSSQL (на конкретном прмере)
    #34575791
xplo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Зайцев Фёдора в чём заключается задача-то ?

Задача заключается в оценке производительности. Интересно узнать: сможет ли мускль справиться с такой задачей лучше MSSQL сервера? вот, собсна и все.
...
Рейтинг: 0 / 0
MySQL vs MSSQL (на конкретном прмере)
    #34575846
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xploИнтересно узнать: сможет ли мускль справиться с такой задачей лучше MSSQL сервера?
Подозреваю, это зависит в первую очередь от около 250 запросов различной сложности
...
Рейтинг: 0 / 0
MySQL vs MSSQL (на конкретном прмере)
    #34576033
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer wrote:
> Подозреваю, это зависит в первую очередь от *около 250 запросов
> различной сложности*
угу... некоторые MySQL запросы оченно коряво эмулируются на MS SQL....
да и с формированием запросов - тоже лажа бывает... особенно в части
limit...
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
MySQL vs MSSQL (на конкретном прмере)
    #34584183
тыц
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
locky
softwarer wrote:
> Подозреваю, это зависит в первую очередь от *около 250 запросов
> различной сложности*
угу... некоторые MySQL запросы оченно коряво эмулируются на MS SQL....
да и с формированием запросов - тоже лажа бывает... особенно в части
limit...
Posted via ActualForum NNTP Server 1.4помню когда перешел с mysql на oracle тож долго жалел об отсутсвии limit, сейчас даже не представляю жизнь без rownum =)
...
Рейтинг: 0 / 0
MySQL vs MSSQL (на конкретном прмере)
    #34584955
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тыц wrote:
> помню когда перешел с mysql на oracle тож долго жалел об отсутсвии
> limit, сейчас даже не представляю жизнь без rownum =)

limit даже лучше - при динамической формировании запроса нет нужды знать
- есть клауза where или нет. rownum в этом плане хуже.
Хотя - значительно лучше, чем эмуляция той-же хрени в MS SQL.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
MySQL vs MSSQL (на конкретном прмере)
    #34585127
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockylimit даже лучше - при динамической формировании запроса нет нужды знать
- есть клауза where или нет. rownum в этом плане хуже.
Опуская соображения о подходе - при формировании запроса с rownum также нет необходимости думать о существовании where.

Что, боюсь, limit вряд ли сможет выполнить, так это пронумеровать строки в выборке. Знаете, такой довольно типичный пункт всяких печатных форм - "номер по порядку".
...
Рейтинг: 0 / 0
MySQL vs MSSQL (на конкретном прмере)
    #34588052
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer wrote:
> Опуская соображения о подходе - при формировании запроса с rownum также
> нет необходимости думать о существовании where.
Код: plaintext
1.
select * from SomeTable
могу прилепить туда же просто в конец
Код: plaintext
1.
  limit ....

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


> Что, боюсь, limit вряд ли сможет выполнить, так это пронумеровать строки
> в выборке. Знаете, такой довольно типичный пункт всяких печатных форм -
> "номер по порядку".
Это да... Вот если б и то и другое было :)
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
MySQL vs MSSQL (на конкретном прмере)
    #34588957
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyа как тоже самое сделать с rownum? Не задрочки ради, действительно
интересно.
Код: plaintext
1.
2.
select *
from (<some original select>)
where rownum ...
...
Рейтинг: 0 / 0
MySQL vs MSSQL (на конкретном прмере)
    #34589319
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer wrote:
> а как тоже самое сделать с rownum? Не задрочки ради, действительно
> интересно.
>
> select *
> from (<some original select>)
> where rownum ...
Тоже вариант, хотя и хреновый, если честно :(
т.е. если в том же MySQL можно сделать (условно)
Код: plaintext
1.
exec (selectlist+fromlist+wherelist+limitlist)
и регулировать поведение путем изменения limitlist, то в твоем варианте
- надо модифицировать весь запрос...
В MS SQL - картина еще хуже :-(((
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
MySQL vs MSSQL (на конкретном прмере)
    #34591933
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyТоже вариант, хотя и хреновый, если честно :(
т.е. если в том же MySQL можно сделать (условно)
Код: plaintext
1.
exec (selectlist+fromlist+wherelist+limitlist)
и регулировать поведение путем изменения limitlist, то в твоем варианте
- надо модифицировать весь запрос...
Довольно странное рассуждение. Попробую по пунктам.

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

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

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

Про MSSQL в данном случае ничего сказать не могу.
...
Рейтинг: 0 / 0
MySQL vs MSSQL (на конкретном прмере)
    #34592661
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще-то, результаты получаются разные...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
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 - всё не так плохо.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
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 - всё еще хуже, потому что запрос вида
Код: plaintext
1.
2.
3.
select *
from sys.objects
order by name

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

Код: plaintext
1.
2.
3.
4.
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
...
Рейтинг: 0 / 0
MySQL vs MSSQL (на конкретном прмере)
    #34592665
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для примеров с MySQL - просто limit 10, ессно :(
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
MySQL vs MSSQL (на конкретном прмере)
    #34592798
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyВообще-то, результаты получаются разные...
Как Вам сказать...... вообще-то в документации по использованию rownum специально и подробно разжевана та ошибка применения rownum, которую Вы сейчас демонстрируете. На пальцах: в том синтаксисе, который Вы использовали в первом случае, движок делает именно то, что Вы ему сказали. То есть: выбирает первые десять строк и сортирует их по object_name.

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

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

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

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

Код: plaintext
1.
2.
3.
 function  DoLimit ( const  SQL:  string ; Min, Max: integer):  string ;
 begin 
  Result := Format ('%s limit %d, %d', [SQL, Min, Max]);
 end ;

и

Код: plaintext
1.
2.
3.
 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" Вы, видимо, так и не прислушаетесь....
...
Рейтинг: 0 / 0
MySQL vs MSSQL (на конкретном прмере)
    #34593048
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer wrote:
Я очень рад, что в документации "всё подробно расписано" :)
Честно. И что планы разные, и все дела - не только верю, но даже смотрел.
Меня больше не теория волнует, а практика.
Точнее... В части Оракла меня это как раз волнует меньше всего - Оракл
для меня сорс, но никак не таргет.

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

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


зы как-то мы отвлеклись от темы топега.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
MySQL vs MSSQL (на конкретном прмере)
    #34593072
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
locky >Это какая-то религиозная разница.
Нет. Это - вполне себе принятая практика в написании систем.
Брр... не понял ответа. Вы уверены, что это ответ именно на эти слова?

locky> К совету забыть про "select list" Вы, видимо, так и не прислушаетесь....
Потому что у нас с Вами - задачи несколько разные.
У Вас - "с нуля написать систему", у меня - заставить (с минимальными
переделками) бежать уже сущствуеющую систему,
Вы неудачно ставите акценты. Та задача, которую стараюсь решать я - "дать системе бежать вместо ползанья". И постепенно до моих начальников доходило, что если я упорно талдычу о том, что "здесь лучше сделать так", то дешевле сразу послушаться.
...
Рейтинг: 0 / 0
MySQL vs MSSQL (на конкретном прмере)
    #34593105
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer wrote:
> >Это какая-то религиозная разница.
> Нет. Это - вполне себе принятая практика в написании систем.
>
> Брр... не понял ответа. Вы уверены, что это ответ именно на эти слова?
та да. Т.е. у меня нету никаких "религимозных побуждений". У меня есть
существующий код, который надо портировать.

> Вы неудачно ставите акценты. Та задача, которую стараюсь решать я -
> "дать системе бежать вместо ползанья". И постепенно до моих начальников
> доходило, что если я упорно талдычу о том, что "здесь лучше сделать
> так", то дешевле сразу послушаться.
Не всегда такой подход возможен - увы. Иногда приходится идти на
компромиссы.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
MySQL vs MSSQL (на конкретном прмере)
    #34593129
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyта да. Т.е. у меня нету никаких "религимозных побуждений". У меня есть
существующий код, который надо портировать.
Хм. Скажем так, если есть конкретный плохой код, и его нельзя вылечить подменой функции вроде той, которую предложил я - это не повод называть вариант хреновым, опуская "в особых, нигде до того не оговоренных условиях".

lockyНе всегда такой подход возможен - увы. Иногда приходится идти на компромиссы.
Хм. По моему опыту, такой подход возможен практически всегда, и вполне сочетается с необходимостью достижения тех или иных промежуточных целей - если, конечно, обе стороны готовы проявить должную гибкость и желание пораскинуть мозгами. Другой вопрос, что чаще всего он оказывается связан с геморроем уровня "а нафига оно мне надо?"
...
Рейтинг: 0 / 0
MySQL vs MSSQL (на конкретном прмере)
    #34594351
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer wrote:
> Хм. Скажем так, если есть конкретный плохой код, и его нельзя вылечить
> подменой функции вроде той, которую предложил я - это не повод называть
> вариант хреновым, опуская "в особых, нигде до того не оговоренных условиях".
Ой, не обижайтесь так :)
Я просто посмотрел на код "со своей колокольни" и расстроился.
А особые условия и впрямь не оговорил :(
Код - не плохой, код нормальный. Для MySQL+PHP.

> Не всегда такой подход возможен - увы. Иногда приходится идти на
> компромиссы.
>
> Хм. По моему опыту, такой подход возможен практически всегда, и вполне
> сочетается с необходимостью достижения тех или иных промежуточных целей
> - если, конечно, обе стороны готовы проявить должную гибкость и желание
> пораскинуть мозгами. Другой вопрос, что чаще всего он оказывается связан
> с геморроем уровня "а нафига оно мне надо?"
Например, для автоматизированного портирования приложений. Либо - для
придания "коробочкам" возможностей работы с более чем одной базой - по
крайней мере на "переходный период".
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
MySQL vs MSSQL (на конкретном прмере)
    #34629361
Фотография borin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
locky
тыц wrote:
> помню когда перешел с mysql на oracle тож долго жалел об отсутсвии
> limit, сейчас даже не представляю жизнь без rownum =)

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

да лана. в MS SQL делаешь пару top'ов с переворотом и все.
...
Рейтинг: 0 / 0
MySQL vs MSSQL (на конкретном прмере)
    #34632399
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
borin wrote:
> да лана. в MS SQL делаешь пару top'ов с переворотом и все.
при ДИНАМИЧЕСКОМ ФОРМИРОВАНИИ SQL.
Т.е. когда на входе уже есть сформированый запрос, который надо ограничить.
И абсолютно не факт, что есть ПК.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
MySQL vs MSSQL (на конкретном прмере)
    #34634454
PrazdNick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
xplo
для вас выбор БД зависит только от того, насколько легко ваши знания реализуют постраничный вывод?
...
Рейтинг: 0 / 0
25 сообщений из 30, страница 1 из 2
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / MySQL vs MSSQL (на конкретном прмере)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]