powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / MySql vs Postgre vs ?
121 сообщений из 121, показаны все 5 страниц
MySql vs Postgre vs ?
    #37892596
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Собственно вопрос в сабже.

На сегодня активно работаем с MySql 5.1.48(кажись), в основном движок InnoDb. Пока справляется достаточно хорошо.
Сервер: 2 проца по 2 ядра (AMD64) 3.5Ггц, память что-то около 8Гб (4дырки по 2), диск raid1 "proffesional :)" 120..200 Мб/сек. Тянет на себе ПХП-сайт и все БД.

Сайт: Nginx + Appache(PHP+Zend) + memcache. Общая отдача (с ботами) около 100к в сутки. Пиково справляется до 170 одновременных обращений в секунду. На запрос к сайту, в среднем делается 3-5 обращений к БД со средним джойном в 5-15 таблиц из нескольких БД (3-5НФ). Некешированная выборка - от 0.1 до 3сек...

Базы на сегодня:
1. Основной справочник (фирмы, адреса, телефоны, люди и т.д.) - около 70_000 фирм, достаточно подробно.
2. Товарная база - около 400 000 товаров.
3. Статистика сервера - около 15млн записей, ежедневный прирост 150к шт.
4. Почтовый автомат (переписка посетителей + рассылки). Работает в виде ПХП демона там же - около 1.5млн писем, ежедневный прирост около 1тыс. шт.
Суммарно что-то около 60 гектар, может уже больше.

В связи с тем, что планируется строить большую экспертную систему на основе товарной базы и ожидается существенный прирост объемов товарной базы (в 10-100 раз), возник вопрос "а потянет ли этот чудо дальше?"

Ну и, как обычно, возникла мысля, а может экспертную систему (ЭС) лепить не на Мускуле?
В основе ЭС будет лежать большой сложно связанный граф. Ожидается средняя глубина в 10 вершин со средней ветвистотью около 25 ребер на узел, на товарную позицию (к счастью, не каждую).

А поскольку акромя Мускуля и когда-то давно MS ACCESS 97, и ещё давнее Borland Paradox 4.1 - ничего не едал... прошу помощи у сообщества...
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37892705
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 07/25/2012 06:03 PM, Arhat109 wrote:

> В связи с тем, что планируется строить большую экспертную систему на основе
> товарной базы и ожидается существенный прирост объемов товарной базы (в 10-100
> раз), возник вопрос "а потянет ли этот чудо дальше?"

400000 товаров * (10/100) = 40,000,000

Ну, не могу сказать, что это уже маленькая БД. по идее Inno должен справляться,

> Ну и, как обычно, возникла мысля, а может экспертную систему (ЭС) лепить не на
> Мускуле?
> В основе ЭС будет лежать большой сложно связанный граф. Ожидается средняя
> глубина в 10 вершин со средней ветвистотью около 25 ребер на узел, на товарную
> позицию (к счастью, не каждую).

Какие операции с графами предполагаются ?

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37892777
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109,

А вы изучали, каковы сейчас узкие места в системе? Какую нагрузку создают разные компоненты системы? Пробовали собрать и погонять макет будущей системы в сторонке?

Несмотря на приведенные цифры, ответы могут быть самым разным - от "и так сойдет" до "ставить 10 серверов, каждый из которых вчетверо мощнее текущего".
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37892843
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вам понадобиться субд с хорошим оптимизатором. mysql славиться слабым оптимизатором, постгрес чуть получше, не столь уж принципиально. дальше идут взрослые субд, точнее их кастрированные версии XE: oracle xe, mssql express, db2 express-c. вряд ли они вам подойдут, у оракла и мсскл ограничение 11гб на базу, у дб2 база не ограничена но 1гб RAM и всего одно процессорное ядро.
в общем реально выбор или постгрес, который не факт, что потянет тяжелый sql или платить за взрослую субд. я так понимаю экспертная система может быть отдельной от вашего mysql и доступной только сотрудникам компании. в этом случае лицензирование взрослой субд по юзерам не так уж дорого обойдется и сэкономит многие часы разработки за счет взрослых фич в субд.
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37893004
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!у дб2 база не ограничена но 1гб RAM и всего одно процессорное ядро.
4 гб, 2 ядра.
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37893151
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109В связи с тем, что планируется строить большую экспертную систему на основе товарной базы и ожидается существенный прирост объемов товарной базы (в 10-100 раз), возник вопрос "а потянет ли этот чудо дальше?"Я не работал ни с той ни с другой базой однако выскажусь.
1 Какая необходимость держать вашу экспертную систему на том же сервере.
2 Присоединюсь к вопросу miksoft об узких местах и создания макета
Arhat109Ну и, как обычно, возникла мысля, а может экспертную систему (ЭС) лепить не на Мускуле?А есть ли у вас спец по Постгрессу? Кадры решают все.
Arhat109В основе ЭС будет лежать большой сложно связанный граф. Ожидается средняя глубина в 10 вершин со средней ветвистотью около 25 ребер на узел, на товарную позицию (к счастью, не каждую).Графы это у вас. У СУБД это таблицы и запросы.
Под словом экспертная система, я представляю систему с редкой, упорядоченной записью, и большим количеством чтений. Такая система должна хорошо параллелиться и хорошо отзыватся на вложения в железо (в отличие от замены СУБД, где положительный результат никак не гарантирован, буде это самая распрекрасная СУБД)
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37893164
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft,

1. Гоняем постоянно. Собственно система в активном развитии с 2008года. Как такового "production" - нет. То, что работает "для всех" - одна из реинкарнаций из общего репозитория разработчиков. Практически ежедневно делается очередной "svn up". :)
Есть большая внутренняя часть - СРМ система "для своих" (в т.ч. удаленно).

2. По узким местам: от сегодняшней нагрузки (это товарно-ценовой портал mediam.ru - около 20_000 полезных визитов в сутки) есть запас около 10 раз по работе серверной части, около 15 раз по вычислительной мощности (средняя нагрузка по htop 30-50% на одно ядро, остальные - 5-10%). Думаю это связано с крайне шустрой дисковой работой (последовательное чтение до 200мб/сек, время простоя на дисках innoDb по статусу не более 15%)... и innoDb уже матерится на недостаток памяти для мускуля, уже сейчас (конкретно недостаток индексного кеша или как он там называется).
... но там есть только 2 дырки, в которых стоит по 4 гектара (в первом посту ошибся)... так что можно ли нарастить - не знаю. В продаже больше 4Гб с ЕСС не видел (у нас).

3. По операциям с графом. Ожидается примерно следующий набор работ (отдельный демон и СУБД):

а) операции выборки всех подузлов, начиная с заданного (необязательно корневого). Типа "много и часто" - поиск, подготовка данных для ПО сайта и т.п. Большей частью можно по крону. В основном, результат выборки будет основой для выуживания данных из остальных БД...

б) операции вставки отдельных узлов (поштучно) в заданную вершину. Ожидается "пачками" (в смысле в много разных мест, но в каждое по одному и поштучно)... не так часто, но по многу и сразу (добавление знаний в экспертную систему). В основном режим "онлайн" - или "как посетителю вздумается". Пример: добавление нового прайс-листа (10-12500 позиций за раз, ограничено сверху нами).

в) перестройка графа (канонизация - перенос поддеревьев, удаление/вставка вершин, ребер). Отдельный фоновый процесс, в основном при снижении нагрузки на БД графа по чтению (например по крону).

Я догадываюсь, что возможно какой-нибудь mumps для ЭС подошел бы лучше (очень слегка ставил и знакомился)... но, недавно нашел плагин к Мускулю, который позволяет лазить из ПО непосредственно к индексам и прочим потрохам, обеспечивая скорости близкие к memcache (тест приводился для 8 ядер 3.5Ггц Intel и 32гектаров RAM)... вот и задумался стоит ли менять "шило на мыло"?.

Надеюсь, это поможет для ответа на вопрос "Стоит ли для реализации ЭС брать другую БД?" Сервер - один, и другой в ближайшее время не предвидится...
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37894673
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109, "друг, подай закурить! ... а в ответ - тишина, он вчера не вернулся из боя."

так никто и не выскажется?
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37895191
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вынести на отдельный сервак и не парится еще 5 лет
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37895193
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну или купить наконец нормальный сервер, а не этот. у меня примерно такое же стоит дома на поиграться.
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37895213
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор. но, недавно нашел плагин к Мускулю, который позволяет лазить из ПО непосредственно к индексам и прочим потрохам, обеспечивая скорости близкие к memcache
это из другой оперы. сортировку он делать уже не умеет.
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37896066
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrow,

Пасибки за целых 3 поста, жаль что все "ни о чем"... Мне показалось, что достаточно внятно написал "есть такой и другого НЕ предвидится", разве что - подарите, не? Тогда не надо давать советы, которыми нельзя воспользоваться.

По теме, что-то сказать - можете?

Повторю ещё раз вопрос: в связи с недостатком времени, изучать подробно "прочие" СУБД - у меня возможности нет.

Если можете ВНЯТНО сказать стоит ли переходить на другую бесплатную СУБД (кроме PostGreSQL альтернативы не вижу) или имеющийся MySQL наши задачи потянет "не хуже"?

Ну или чем одно лучше другого на таком железе и для такой задачи?
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37896076
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109Если можете ВНЯТНО сказать стоит ли переходить на другую бесплатную СУБД

Говорю ВНЯТНО: нет, не стоит. Точка.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37896155
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109,

И времени у Вас нет, и денег... Пичалька, однако. М.б. и тон своих постов стОит убавить, в соответствии с наличием времени и денег?!
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37896498
РыбАлов В
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Arhat109ScareCrow,

Пасибки за целых 3 поста, жаль что все "ни о чем"... Мне показалось, что достаточно внятно написал "есть такой и другого НЕ предвидится", разве что - подарите, не? Тогда не надо давать советы, которыми нельзя воспользоваться.

По теме, что-то сказать - можете?

Повторю ещё раз вопрос: в связи с недостатком времени, изучать подробно "прочие" СУБД - у меня возможности нет.

Если можете ВНЯТНО сказать стоит ли переходить на другую бесплатную СУБД (кроме PostGreSQL альтернативы не вижу) или имеющийся MySQL наши задачи потянет "не хуже"?

Ну или чем одно лучше другого на таком железе и для такой задачи?
Внятно и громко говорю вам НЕТ!
Не переходите на PostgreSQL или Firebird - переходите на SQL server.
Только SQL Server принесёт вам успех и счастье! Так как у Вас очень мало времени рекомендую все вопросы связанные с изучением этой чудесной СУБД задать на форуме.
Все будут просто счастливы ответить вам.
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37896510
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
РыбАлов ВArhat109ScareCrow,

Пасибки за целых 3 поста, жаль что все "ни о чем"... Мне показалось, что достаточно внятно написал "есть такой и другого НЕ предвидится", разве что - подарите, не? Тогда не надо давать советы, которыми нельзя воспользоваться.

По теме, что-то сказать - можете?

Повторю ещё раз вопрос: в связи с недостатком времени, изучать подробно "прочие" СУБД - у меня возможности нет.

Если можете ВНЯТНО сказать стоит ли переходить на другую бесплатную СУБД (кроме PostGreSQL альтернативы не вижу) или имеющийся MySQL наши задачи потянет "не хуже"?

Ну или чем одно лучше другого на таком железе и для такой задачи?
Внятно и громко говорю вам НЕТ!
Не переходите на PostgreSQL или Firebird - переходите на SQL server.
Только SQL Server принесёт вам успех и счастье! Так как у Вас очень мало времени рекомендую все вопросы связанные с изучением этой чудесной СУБД задать на форуме.
Все будут просто счастливы ответить вам.ну что ж - очень аргументированный ответ
случайно раньше не в церкви работали?
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37896587
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Не переходите на PostgreSQL или Firebird - переходите на SQL server.
> Только SQL Server принесёт вам успех и счастье! Так как у Вас очень мало времени

Ага. уже. Расскажи, что такое есть в MSSQL чего нет в том же Postgres?
Те же индексы, те же таблицы.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37896590
Сходу
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv
> Не переходите на PostgreSQL или Firebird - переходите на SQL server.
> Только SQL Server принесёт вам успех и счастье! Так как у Вас очень мало времени

Ага. уже. Расскажи, что такое есть в MSSQL чего нет в том же Postgres?
Те же индексы, те же таблицы.

Сходу: MatView, MatView-QueryRewrite, Intra-Query Parallelism, Compression, LogShipping, Transaction Replication, PWD... etc
Можно ещё долго перечислять.
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37896654
Фотография Ёш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СходуMatView, MatView-QueryRewrite, Intra-Query Parallelism, Compression, LogShipping, Transaction Replication, PWD... etcMatView — есть, MatView-QueryRewrite — есть, Intra-Query Parallelism — можно сделать, Compression — есть, LogShipping — есть, Transaction Replication — не знаю что это, репликация есть, PWD — непонятное слово :)
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37896828
Compression
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ЁшСходуMatView, MatView-QueryRewrite, Intra-Query Parallelism, Compression, LogShipping, Transaction Replication, PWD... etcMatView — есть, MatView-QueryRewrite — есть, Intra-Query Parallelism — можно сделать, Compression — есть, LogShipping — есть, Transaction Replication — не знаю что это, репликация есть, PWD — непонятное слово :)
А можно ссылки на доку по MatView-QueryRewrite и Compression?
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37896957
Фотография Ёш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CompressionЁшпропущено...
MatView — есть, MatView-QueryRewrite — есть, Intra-Query Parallelism — можно сделать, Compression — есть, LogShipping — есть, Transaction Replication — не знаю что это, репликация есть, PWD — непонятное слово :)
А можно ссылки на доку по MatView-QueryRewrite и Compression?
http://www.postgresql.org/docs/current/static/rules.html
http://www.postgresql.org/docs/current/static/storage-toast.html
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37896996
Alexander Ryndin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЁшCompressionпропущено...

А можно ссылки на доку по MatView-QueryRewrite и Compression?
http://www.postgresql.org/docs/current/static/rules.html
http://www.postgresql.org/docs/current/static/storage-toast.html Что-то я почитал про Rules - хрень какая-то, а не Matview-QueryRewrite. Это как самолет и самолетик. Вроде оба летают, у обоих крылья есть, но в остальном все разное.

Про toast прочитал вот эту фразу и сижу офигеваю
автор PostgreSQL uses a fixed page size (commonly 8 kB), and does not allow tuples to span multiple pages . Therefore, it is not possible to store very large field values directly. To overcome this limitation, large field values are compressed and/or broken up into multiple physical rowsВыглядит как какая-то непонятная приблуда, придуманная, чтобы PGSQL мог храниться данные больше 8кб, но приспособленная еще для чего-то
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37897047
Compression
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alexander RyndinЁшпропущено...

http://www.postgresql.org/docs/current/static/rules.html
http://www.postgresql.org/docs/current/static/storage-toast.html Что-то я почитал про Rules - хрень какая-то, а не Matview-QueryRewrite. Это как самолет и самолетик. Вроде оба летают, у обоих крылья есть, но в остальном все разное.

Про toast прочитал вот эту фразу и сижу офигеваю
автор PostgreSQL uses a fixed page size (commonly 8 kB), and does not allow tuples to span multiple pages . Therefore, it is not possible to store very large field values directly. To overcome this limitation, large field values are compressed and/or broken up into multiple physical rowsВыглядит как какая-то непонятная приблуда, придуманная, чтобы PGSQL мог храниться данные больше 8кб, но приспособленная еще для чего-то
Так я не понял, там это материализованное представление и вообще как эти rules работают в двух словах?
И сжатие это бинарные столбцы TOAST (типа BLOB) просто перед сохранением жмутся и сохраняются по множеству строк?
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37897145
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pkarklin, что конкретно Вам не понравилось в моих постах? Я задался вполне нормальным вопросом проектировщика, при начале нового проекта. Нет времени и денег - нормальное состояние. У Вас есть и то и другое? Значит Вы - безработный меценат, живущий на рентный доход. ;)

То что не хочу, чтобы тему превратили во флуд "чья пиписька тольщее"? Всё равно - УЖЕ превратили.

Меня интересовал конкретный ответ на конкретный вопрос. Мне его дали - "не стоит". За что пасибки автору. Чётко и понятно.
Времени разбираться ПОЧЕМУ - у меня нет.

Так что спасибо за участие, тему можно закрывать - мерялки проприетарных рекламистов меня ваще не интересуют.
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37897147
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109, жаль нельзя исправить... дополню:

Вот ответ "надо переходить на..." - обязан сопровождаться объяснением ПОЧЕМУ эти задачи в этих условиях полезно решать другими средствами.
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37897149
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
РыбАлов В,

К сожалению, в рассмотрении только свободно распространяемый софт. Владелец/Заказчик - категорически против ЛЮБОЙ оплаты проприетарщикам. Он поддерживает только свободное распространение.
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37897165
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сходу, можете пояснить как эти фичи могут оказаться полезны в решении поставленной задачи? Не очень понял нафига оно...
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37897250
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109Arhat109, жаль нельзя исправить... дополню:

Вот ответ "надо переходить на..." - обязан сопровождаться объяснением ПОЧЕМУ эти задачи в этих условиях полезно решать другими средствами.вам никто ничего не обязан, будьте благодарны каждому совету
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37897328
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 07/29/2012 09:26 PM, Ёш wrote:

> http://www.postgresql.org/docs/current/static/rules.html
> http://www.postgresql.org/docs/current/static/storage-toast.html

Ну это вообще не интересно. Если брать PG и MSSQL, то вообще
смысла нет сравнивать. Они вообще оного плана, одной
мощности. Но даже если сравнивать c MySQL для этой задачи думаю
всё равно что то, что это.

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37897329
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Сходу: MatView, MatView-QueryRewrite, Intra-Query Parallelism, Compression,
> LogShipping, Transaction Replication, PWD... etc
> Можно ещё долго перечислять.

И оно ему надо для этой задачи?

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37897336
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Вот ответ "надо переходить на..." - обязан сопровождаться объяснением ПОЧЕМУ эти
> задачи в этих условиях полезно решать другими средствами.

Вот если бы тебе граф расшивать запросом одним, вот это да, была бы фича в тему.

Кстати, в MSSQL есть WITH/CONNECT BY или как его там. Подходит для этой задачи.
В PG не знаю.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37897405
rovan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv,

В PG есть RECURSIVE CTE.
То же самое.
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37897519
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergSuper, извиняюсь. Конечно надо было "полезно" вместо "обязательно". Просто хотел заметить, что отказ от перехода - может быть просто отказом, а предложение другого решения полезно обосновывать, в целом а не применительно к данной теме.

Вытаскивать всё поддерево одним (фиксированным) запросом даже в ситуации только parent_id - умею и на Мускуле. С переменными - не проблема, работает такой запрос максимум в три раза дольше чем динамически собранный union/join по уровню вложенности или выборка через отдельную таблицу связей... уже писал тут в теме про деревья на мускуле.

В принципе, тему можно закрывать. Для себя определил что остаюсь на Мускуле.
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37897599
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109Вытаскивать всё поддерево одним (фиксированным) запросом даже в ситуации только parent_id - умею и на Мускуле
Интересно было бы посмотреть как. А то мне иногда такое требуется. Пока что приходится переносить для этого часть логики на PHP.
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37897701
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисИнтересно было бы посмотреть какНу, вызов ХП - тоже запрос. Причём как раз один. И фиксированный к тому же :)
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37897731
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисArhat109Вытаскивать всё поддерево одним (фиксированным) запросом даже в ситуации только parent_id - умею и на Мускуле
Интересно было бы посмотреть как.+1
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37897767
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglirНу, вызов ХП - тоже запрос.
А... Я то думал мало что пропустил.
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37898006
Alexander Dorogikh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
поделюсь и своими соображениями.....

я с постгрес работал (наверно стоит сказать баловался) лет эдак 6-8 назад и все
тоесть ничерта уже не знаю и не помню

пред история
сейчас сервис работает на MySQL 5.1.52 (если мне не изменяет память), все таблици MyISAM, master+slave
сейчас БД занимает около 50ГБ, постоянно растет

после того как сдохла мать на одно из серверов, и позиция бинлога слейва опережала мастер ну очень прилично, а так же из-за того что восстановлени и запуск сервиса занял аж 6 часов времени, ни и естественно после того как директор вспомнил всех "лаского"...
было принято решение переехать на что то более стабильное, соответсвенно задались вопрос "а на что?"

сразу требования были такими
1. максимальная стабильность
2. синхронная репликация
3. легкость восстановления
4. отсутвие переделки кода, или сведение переделок к минимуму

я прошерстил мускульные решения и остановился на Percona XtraDB Cluster.
наш админ, был категорически против такого костыльного решение, цитирую не дословно )) "надстройка над дряхлой реализацией репликации в мускула". И предложил свою идею - "нафига нам такая глючная СУБД, давайте PostgreSQL ставить, есть много промышленых решений ....".
И еще стоит вспомнить то что обычно я на плюсы обращаю в последнию очередь, если решение подходит по требования, то мне куда интереснее знать минусы системы и с чем нам придеться столкнуться, чем знать всякие плюшки на которые и так никто не расчитывал. Посему в моих отчетах было больше высказано всяких бяк перконы (я с нее начал) чем преимуществ. На что админ "хватась за голову" кричал "нафига нам надо такое дерьмо, я в продакшн его не пущу, и вообще гарантий не даю"

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

Вообщем сошлись на том что нужно проверять/тестировать.

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

Для постгреса был выбран pgpool II , так как PGCluster умер вроде бы давно, вторую версию мы с админом так и не нашли. А ничто другое синхронную репликацию не поддерживает.

Почему начал с конца?
именно с возможности найти вменяемую свежую, обновляемую информацию по каждому и зрешений из какотото одного места. Тоесть сто бы создать кластер перконы мне понабоилось два ресурса, один из которых сам сайт перконы второй http://www.mysqlperformanceblog.com/, который и так ведут перконовци. Потом уже понадобилось куча других ресурсов, но то уже больше касалось понимания происходящих процессво и тонокого тюна.

Еще стоит отметить - что наш админ, сильно настаивал на том что не очень доверяет какимто продуктам и конторорам которые не дают сразу из коробки какогото полноценного решения. Витиевато сказал )). Я к тому что вот кластре перконы давал инфу как построить кластер, но не давал сриптов/программ/решений как полноценно мониторить кластер как автоматически правильно восстанавливать узел и пр.

Это в свою очередь добавило еще такое неявное условие к тестированию: оба кластера тестировались только с теми настройками которые рекомендовались для работы серверов в кластере. Никакого тонкого тюнинга не проводилось. Балансировщики также ни как тонко не настраивались. Вообщем такое себе "коробочное" решение.

И так некоторые данные из тестов:


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
баланесер HAProxy
AMD Phenom(tm) II X6 1055T Processor 2 ядра, 2.8 ГГц, 512МБ
percona-node1
AMD Phenom(tm) II X6 1055T Processor 2 ядра, 2.8 ГГц, 1024МБ
percona-node2
AMD Phenom(tm) II X4 945 Processor 2 ядра, 3,2 ГГц, 1024МБ
percona-node3
Intel(R) Core(TM)2 Duo CPU E6750 2 ядра, 2.66GHz, 1024МБ

чистый тест записи
min=0.0020556449890137
max=0.45267136891683
avg=0.004230509018898

чистый тест чтения
min=0.00086212158203125
max=0.028524160385132
avg=0.0030196107387543

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
баланесер pgpool2
AMD Phenom(tm) II X6 1055T Processor 2 ядра, 2.8 ГГц, 512МБ
postgres-node1
AMD Phenom(tm) II X6 1055T Processor 2 ядра, 2.8 ГГц, 1024МБ
postgres-node2
AMD Phenom(tm) II X4 945 Processor 2 ядра, 3,2 ГГц, 1024МБ
postgres-node3
Intel(R) Core(TM)2 Duo CPU E6750 2 ядра, 2.66GHz, 1024МБ

чистый тест записи
min=0.0054296652475993
max=0.14494268099467
avg=0.021722389920553

чистый тест чтения
min=0.0061240196228027
max=0.21231603622437
avg=0.011303532481194


все перечисленные конфиги относяться к виртуалкам запущеным на офисных (вообщем даже домашних) машинах.

далее админ сказал что неплохо было бы проверить LA при интенсивной записи, хотябы по top
поскольку нам нужна синхронная репликация, то масштабировать запись получаеться не сильно, тоесть нужно было проверить насколько движки серверов будут блоикровать остальную систему и самих себя

для данного теста были оставлены два узла, 6 ядерная машина была использована как гостевая для ВМ балансера, и создание тестовых процессов, на ней же поднята NFS, куда collectd писал свои наблюдения с узлов кластера.

условия
Код: plaintext
1.
2.
3.
100 потоков
вставка в 3 таблици по 5000 строк
общее количство вставок 1500000

что имеем

кластер перконы
min=0.00771164894104
max=0.40158263842265
avg=0.027967720015844

percona-node2
percona-node3
тест завершился успешно за меньше чем 10 минут, я не поверил потом перепроверил еще два раза, все пучком по 500000 строк в каждой таблице

кластер постгрес
min=0.01076602935791
max=0.25553027788798
avg=0.043085272804896

postgres-node2
postgres-node3
а вот тут я задолюался ждать завершения
оставноил тест, на это время в каждой из таблиц находилось по 275029 строк
более того (скопипастил со своего отчета)

Явообщем както странно работало
100 потоков было создано мгоновенно
а вот pgpool сразу открыл соединений значительно меньше
две попытки входа на pgpool через psql провалились после 30 секунд ожидания

psql: server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.

(перкона в этом плане посзволяля заходить и смотреть статистику)
Отсюда получаеться что цифирки min/max/avg - актуальны ТОЛЬКО для скорости вставки, но не для наглядного представления работы приложения ибо не учитываеться время соединения с балансером


еще интересно то что la у постгреса значительно меньше получился на машине с более быстрым процессором - почему не знаю.


и снова небольшое резюме
графики load average - при сравнении кластеров не показательны
да у мускуля он выше, но мускул делает значительно больше работы чем тот постгрес, пишет данные, ведет бинлог, ведет кеш Галеры и еще кучу всего. И при этом отрабатывает запросы быстрее постгреса. Вот если опустить скорость до уровня постгреса, вот тогда можно было что то сказать более конкретно.

Восстановление

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

и еще пару слов
если я правильно понимаю - то репликация pgpool как то и не репликация вовсе, тоесть по термину то она работает как надо, а вот если глянуть внутрь то pgpool просто делает такую себе широковещательную рассылку на узлы кластера

так же проверялось, но описывать уже не буду
- на сколько легко меняються струкутуры таблиц в двух решениях, и как это влияет на работу кластера
- также бегло было определено что перезд, именно переезд, существующего приложения на постргрес - вообще кактастрофа, просто так БД не конвертируешь, часть кода придеться менять точно.
- писать приложение с нуля на постгрес можно, хотя все таки меня смущает вопрос производительности. Так же у постгреса более развитый язык описания функций/процедур, и много вкусных плюшек в типах данных и ограничениях, но это уже....другая история вообщем то.

хочеться услышать ваше ФИ по моему тексту
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37898150
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> 2. синхронная репликация

Синхронной репликации не бывает.
Синхронная репликация называется "распределённая транзакция".

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37898160
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 07/30/2012 05:15 PM, Alexander Dorogikh wrote:
> Начну с конца, тоесть с того вывода который я сам для себя сделал в самый
> последний момент
> это "промышленность решения"
> с одной стороны это означает что данноя штука уже давным давно используеться в
> продакшн, а с другой
> Перкона - контора которая промышленно занимаеться разработкой, продукт постоянно
> развиваеться, ведет продвижение в массы, тех поддержку и пр.

Она не занимается разработкой. Перкона только патчит стандартный MySQL добавляя
туда какие-то нужные фичи и леча серьёзные баги.

Отношение MySQL - Percona примерно как kernel dev team -- Red Hat.
Роли примерно такие же.

И техподдержка у них, что естественно, за деньги.
Такую же поддержку можно заказать и в самом MySQL.

Ну и перконовскому клону не так много лет.

> "поделки постгреса" - написано вроде валом, вроде в продакшене работают, но
> никто ни за что не отвечает. Ну окромя skytools, но она нам не подходила так как
> имела асинхронную репликацию.

В сообществе Postgres есть точно такой же EnterpriseDB, который делает ровно
то же самое -- даёт поддержку Postgres, патчит баги, имеет свои суперфичи.


Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37898168
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 07/30/2012 05:15 PM, Alexander Dorogikh wrote:
> И так некоторые данные из тестов:

> чистый тест записи
> min=0.0020556449890137
> max=0.45267136891683
> avg=0.004230509018898
>
> чистый тест чтения
> min=0.00086212158203125
> max=0.028524160385132
> avg=0.0030196107387543

> чистый тест записи
> min=0.0054296652475993
> max=0.14494268099467
> avg=0.021722389920553
>
> чистый тест чтения
> min=0.0061240196228027
> max=0.21231603622437
> avg=0.011303532481194
>
>
>
> все перечисленные конфиги относяться к виртуалкам запущеным на офисных (вообщем
> даже домашних) машинах.

Вы сравнивали транзакционный Postgres и нетранзационный MySQL+MyISAM ?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37898172
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander Dorogikh хочеться услышать ваше ФИ по моему тексту


Извини за прямоту, вы просто зря потратили время.
Тестирование СУБД -- это очень непростое дело, и что два сдуру сунувшихся в это дело
человека покажут что-то путное в виде результатов -- это абсолютно невероятное событие.
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37898237
Alexander Dorogikh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
то что перкона патчит эт я знаю, можно увидеть самому когда собирать перокону и тянуть из дистрибов
но все таки это официальное лицо которое поставлет Percona XtraDB Cluster
EnterpriseDB - дает какоето бесплатное кластерное решение? я серьезно спрашиваю

распереденная транзакция это подноготная происходящего процесса, но почему почти везде и на та же перкона имено так и называет свою репликацию синхронной ( http://www.percona.com/software/percona-xtradb-cluster/)



MasterZivВы сравнивали транзакционный Postgres и нетранзационный MySQL+MyISAM ?


мы сранивали постргес и перкону с ее движком поумолчанию XtraDB

MasterZivИзвини за прямоту, вы просто зря потратили время.
Тестирование СУБД -- это очень непростое дело, и что два сдуру сунувшихся в это дело
человека покажут что-то путное в виде результатов -- это абсолютно невероятное событие.

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

я даже по секрету скажу -
вся эта бодяга больше для того что бы остановить выбор на перконе

постгрес хоть и знаком админу, но как его тюнинговать, как вообще им пользоваться )) в компании никто не знает, я сам 6 лет мускулом пользуюсь, мож не знаю абсолютно всего, но 6 лет это и так не мало ))) (хочеться так думать)

и все таки результат как бы есть
переход на перкону как минимум не ухудшит производительности (с учетом того что текущиее решение тюнинговалось 6 лет, а перкона запускалась с "дефолтными" настройками). Да и переход будет безболезненным с минимальным временем простоя сервиса.

на данный момент мы просто не увидели сильных преимуществ постгреса на майскул "с патчами от перконы ))"

если я что то упустил, серьезное, с удовольствием выслушаю
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37898252
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander Dorogikhпочему почти везде и на та же перкона имено так и называет свою
репликацию синхронной
Потому что все и всегда её так называют, только Баба Яга MasterZiv - против.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37898254
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1.5M записей 10 минут ... как-то не впечатляет перфоменс. а сколько стооит эта перкона на такие 4 ноды ?
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37898265
Alexander Dorogikh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Yo.!1.5M записей 10 минут ... как-то не впечатляет перфоменс. а сколько стооит эта перкона на такие 4 ноды ?
пока нисколько
все тестировалось на VirtaulBox машинах, проыцессор и память указаны в результатах
тюнингом никто не занимался

такой вопрос - а какой показатель считать впечатляющим?

(мы принципе сейчас находиммся на этапе реорганизации сервиса, часть операций вообще уйдет в NoSQL, там где именно важна скорость засписи а не целостность данных)
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37898275
Alexander Dorogikh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Yo.!1.5M записей 10 минут ... как-то не впечатляет перфоменс. а сколько стооит эта перкона на такие 4 ноды ?

зыж
и еще
она вообще бесплатна, платна только поддержка (срочная если нужно очень)
а про пока нисколько - я имел ввиду аренду шелезяк

рекомендуеться нечетное число узлов для того что бы галера могла нормально решить проблему split brain (мы пока остановились на 3х серверах)
кстати я так и не понял как с этим обстоят дела у pgpool
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37898312
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft,

Сожалею, но не могу привести SQL. Идея - проста, заметьте что:

1. простой джойн таблицы сама с собою - дает все связи всех узлов всех деревьев (без части where).
2. если таблицу правильно проиндексировать, то можно обеспечить требуемый порядок выборки этих связей.
3. остается только организовать "память" о подузлах на переменных (и это оказывается очень дешево и крайне быстро у Мускуля!).

Всё. На выход отдаем только требуемые подузлы частью where.
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37898336
Alexander Dorogikh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
http://www.enterprisedb.com/solutions/mysql-vs-postgresql
вот такие высокопарные слова, а реальных данных для сравнениея нема
админ тоже так задушевно )) рассказывал о преимуществах но так и не привел никаких толковых аргументов

на данный момент из того что нам требуеться я нашел только вот это
http://www.enterprisedb.com/products-services-training/products/postgres-plus-advanced-server
но сколько оно стоит???
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37898348
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander Dorogikh,

Спасибо за приведенные данные. Пусть они и "пол-потолок-палец", но по крайней мере не увидел солидных аргументов "за" переход с Мускуля куда-то ещё для своей задачи.
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37900071
ОКТОГЕН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, о птичках а в M$SQL появилась такая штука?
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37900126
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОКТОГЕНКстати, о птичках а в M$SQL появилась такая штука?
Table-value function?
с 2000-го года, если правильно помню, а что?
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37900127
Фотография denis2710
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОКТОГЕН, с 2005
BOL
А кстати,давно хотел спросить у PostresSQL решили проблему падения производительности на 25% при вызове процедур(функций)?
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37900192
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
denis2710ОКТОГЕН, с 2005
BOL
А кстати,давно хотел спросить у PostresSQL решили проблему падения производительности на 25% при вызове процедур(функций)?
всё-таки с 2000 http://msdn.microsoft.com/en-us/library/aa214485%28v=sql.80%29
User-Defined Functions That Return a table Data Type
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37900215
ОКТОГЕН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyTable-value function?
с 2000-го года, если правильно помню, а что?
А там можно сделать INSERT/UPDATE/DELETE?
В 2000 надо было мутить процедуру, у которой, насколько помню, были ограничения на JOIN
ЗЫ
Я имел ввиду встроенные Table-value function, например, generate_series, т.к. пришлось такие вещи писать.
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37900235
ОКТОГЕН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
denis2710А кстати,давно хотел спросить у PostresSQL решили проблему падения производительности на 25% при вызове процедур(функций)?
Про такую багу слышал давно, а вот насчёт исправления...
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37900244
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОКТОГЕНПро такую багу слышал давно, а вот насчёт исправления...

Это не бага, а фича, слямзенная у Большого Брата.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37900268
Фотография Ёш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОКТОГЕН, а что за бага?
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37900277
Фотография denis2710
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovОКТОГЕНПро такую багу слышал давно, а вот насчёт исправления...

Это не бага, а фича, слямзенная у Большого Брата.

Что и у ORACLE сия "фича"? Как-то не замечал.
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37900278
ОКТОГЕН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ёш, я натыкался на owerhead вызова SQL функций. PlPgsql функции с идентичным кодом оказывались быстрее.
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37900287
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
denis2710Что и у ORACLE сия "фича"?

Угу, у него сильно разделены SQL и PL/SQL, так что вызов одного из другого тормозит.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37900349
FreemanZAV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОКТОГЕНЯ имел ввиду встроенные Table-value function, например, generate_series, т.к. пришлось такие вещи писать.
Достаточно бестолковая функция, поскольку последовательность можно легко получить одним запросом
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37900353
FreemanZAV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakovdenis2710Что и у ORACLE сия "фича"?

Угу, у него сильно разделены SQL и PL/SQL, так что вызов одного из другого тормозит.


Точнее сказать, тормозить аж п-ц
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37900445
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОКТОГЕНlockyTable-value function?
с 2000-го года, если правильно помню, а что?
А там можно сделать INSERT/UPDATE/DELETE?
В 2000 надо было мутить процедуру, у которой, насколько помню, были ограничения на JOIN
ЗЫ
Я имел ввиду встроенные Table-value function, например, generate_series, т.к. пришлось такие вещи писать.
чочочо? (это я про болд)

а про insert/update/delete - таки да, можно, хоть и не без ограничений

не, встроеных - нет. но, как я понимаю, писать пришлось один раз? :)
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37900470
Фотография denis2710
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОКТОГЕН Ёш, я натыкался на owerhead вызова SQL функций. PlPgsql функции с идентичным кодом оказывались быстрее.
При недолгом общении с postgresql, я натыкался на этот overhead и в случае sql и pl/pgsql функций.
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37901104
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
denis2710, Забавно. Не думал что такие проблемы даже у Оракула бывают...

У нас InnoDb работает очень даже устойчиво. А ежели учесть, что во внутренней СРМ системе, какой-то гений сделал все базовые операции (контроль доступа пользователя по ключам доступа, вставку, обновление, проверку наличия такого объекта при добавлении связи, логирование и т.д.) через процедуры мускуля, да ишо передавая им json объект, который парсится вручную теми же мускульными процедурами (поубивал бы!)... и всё это держит (сервак описал выше) до 20-и одновременных пользователей без кеширований... не, Мускуль лучше, адназначна!
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37901466
Фотография denis2710
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109,
У всех систем есть свои недостатки...
Про мускул общепризнанный факт оптимизатор у нее слабоват.
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37901711
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
denis2710Arhat109,
У всех систем есть свои недостатки...

что значит свои ? типа у прямых конкурентов при переключении от декларативного движка к процедурному просадка меньше.
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37901967
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!denis2710Arhat109,
У всех систем есть свои недостатки...

что значит свои ? типа у прямых конкурентов при переключении от декларативного движка к процедурному просадка меньше.
DB2 умеет вставлять тело функции в select, то бишь делать макроподстановку.
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37902131
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Victor MetelitsaDB2 умеет вставлять тело функции в select, то бишь делать макроподстановку.
в оракле эта технология еще в 80х начала отмирать, уступая место PL/SQL. у IBM, к примеру, этот процесс только сейчас начался, т.е. лет на 20 позже.
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37902702
Alexander Ryndin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor MetelitsaYo.!пропущено...

что значит свои ? типа у прямых конкурентов при переключении от декларативного движка к процедурному просадка меньше.
DB2 умеет вставлять тело функции в select, то бишь делать макроподстановку.Это ж какую такую макроподстановку можно сделать в SELECT для цикла?
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37902914
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сейчас там есть три сорта sql-функция
* begin ... return ... end - компилируется отдельно, называется compound SQL (compiled), наименее эффективно при прочих равных, но синтаксис "полноценный", http://pic.dhe.ibm.com/infocenter/db2luw/v10r1/topic/com.ibm.db2.luw.sql.ref.doc/doc/r0004239.html
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
CREATE FUNCTION increment(INOUT result INTEGER, IN delta INTEGER)
     RETURNS INTEGER
BEGIN
  DECLARE code INTEGER DEFAULT 0;
  DECLARE SQLCODE INTEGER;
  DECLARE CONTINUE HANDLER FOR SQLEXCEPTION 
  BEGIN
       SET code = SQLCODE;
       RETURN code;
   END;
   SET result = result + delta;
   RETURN code;
END@


* begin atomic ... return ... оно inlined at run time within another SQL statement, называется compound SQL (inlined), синтаксис упрощён по сравнению с compound SQL (compiled), но цикл while таки есть, http://pic.dhe.ibm.com/infocenter/db2luw/v10r1/index.jsp?topic=%2Fcom.ibm.db2.luw.sql.ref.doc%2Fdoc%2Fr0004240.html
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
CREATE FUNCTION REVERSE(INSTR VARCHAR(4000))
     RETURNS VARCHAR(4000)
     DETERMINISTIC NO EXTERNAL ACTION CONTAINS SQL
BEGIN ATOMIC
     DECLARE REVSTR, RESTSTR VARCHAR(4000) DEFAULT '';
     DECLARE LEN INT;
     IF INSTR IS NULL THEN
       RETURN NULL;
     END IF;
     SET (RESTSTR, LEN) = (INSTR, LENGTH(INSTR));
     WHILE LEN > 0 DO
       SET (REVSTR, RESTSTR, LEN) 
       = (SUBSTR(RESTSTR, 1, 1) CONCAT REVSTR, 
       SUBSTR(RESTSTR, 2, LEN - 1),
       LEN - 1);
     END WHILE;
     RETURN REVSTR;
END


* просто returm - оно самое оптимизируемое, a la
Код: sql
1.
2.
3.
4.
5.
6.
7.
CREATE FUNCTION TAN (X DOUBLE)
     RETURNS DOUBLE
     LANGUAGE SQL
     CONTAINS SQL
     NO EXTERNAL ACTION
     DETERMINISTIC
     RETURN SIN(X)/COS(X)


или
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
CREATE FUNCTION DEPTEMPLOYEES (DEPTNO CHAR(3))
     RETURNS TABLE (EMPNO CHAR(6),
                    LASTNAME VARCHAR(15),
                    FIRSTNAME VARCHAR(12))
     LANGUAGE SQL
     READS SQL DATA
     NO EXTERNAL ACTION
     DETERMINISTIC
     RETURN
       SELECT EMPNO, LASTNAME, FIRSTNME
         FROM EMPLOYEE
         WHERE EMPLOYEE.WORKDEPT = DEPTEMPLOYEES.DEPTNO
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37904050
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
denis2710,
ИМХО это достоинство, а не недостаток. Значит запрос будет выполняться с большой долей вероятности именно так как напишешь. Мне похожая беда, в своё время на Access97 надоела "хуже горькой редьки" - "автопросроитель" делаешь, а потом открываешь sql и правишь как надо.

В общем-то да, заметил уже. Последнее время, не заморачиваюсь. Пишу сразу FORCE INDEX FOR (.нафига и какой.).
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37904055
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, Мускул тоже запросы в процедурах обрабатывает несколько медленнее чем при прямом вызове... недавно заметил. И обработка в триггерах идет в 2-3 раза медленнее чем при добавке ON DUPLICATE KEY...
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37904057
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109"автопросроитель"Опечатка ли? :)
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37904546
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft,
опечатка, но "удачная"... клаву пора мыть - половина клавиш не прожимается.
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37905292
Фотография denis2710
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109denis2710,
ИМХО это достоинство, а не недостаток. Значит запрос будет выполняться с большой долей вероятности именно так как напишешь.
...
В общем-то да, заметил уже. Последнее время, не заморачиваюсь. Пишу сразу FORCE INDEX FOR (.нафига и какой.).
Какое-то странное понятие о достоинствах...
Полезно разобраться "че да как",а не лепить хинты имхо
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37906291
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
denis2710, с чем предлагаете "разобраться че да как"? Просто не очень понял чего сказать хотели... вот, разбираюсь. ;)

Ежели с мускульными запросами, то там особо сложного ничего не бывает, потому как оптимизатор - убогий (и это - хорошо!), на крайняк - есть документация, на самый крайняк - этот форум. ;)

Гораздо хужее вумный (как вутка, тока не крякает) - оптимизатор. Ты предполагаешь одно, а он лепит - другое (например редукция неизменяемого подвыражения, которое тебе на самом деле "душу греет")...и главное молчит зараза (не крякает ведь)!

Ну например, где-нибудь в блоке WHERE ставишь IF(условие, LEAST( @one:="two", 1 ), 2)
, а он смотрит, что внутрях функции LEAST сплошь константы получаются и редуцирует вызов функции... да ишо и молча... бяда, ой бяда.

Не, в нормальных проектах вумные оптимизаторы - зло.
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37906430
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109Ну например, где-нибудь в блоке WHERE ставишь IF(условие, LEAST( @one:="two", 1 ), 2)
, а он смотрит, что внутрях функции LEAST сплошь константы получаются и редуцирует вызов функции... да ишо и молча... бяда, ой бяда.
помоему беда это когда пишут функции во where
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37906577
Arhat109Не, в нормальных проектах вумные оптимизаторы - зло.
А с какой из СУБД с вумным оптимизатором вы хорошо знакомы?
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37906653
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
с какой из СУБД, "хорошо" - понятие растяжимое. Слегка знаком был с MS SQL Server особенно в части работы через MS Access-97...

"слегка" - это разработка только двух проектов с нуля и в одиночку:

1. Товарная СУБД для учета склада компьютерной фирмы с полуавтоматом по распознаванию "одинаковости" товарной позиции от разных поставщиков с элементами самообучения проги. Основной интерфейс оператора - MS Access, хранение MS SQL. Проект реализован в пилотной версии, и брошен по причине потери места работы по личным мотивам.

Собственно мой интерес к ИИ здесь и нарисовался...

2. Учет ТМЦ для издательства. Конкретно реализация первой версии, в виде переноса пилотного проекта с Мускула (ещё какой-то там 3-й версии MyIsam) на MS SQL... Проект также брошен по причине неспособности руководства издательства преодолеть саботаж руководителей среднего звена.

Вот уже третий год работаю на MySQL 5.1.48 ... и, как оценивается другими - знаю его виртуозно... но вот сам о себе такого сказать не могу. Хотя бы потому, что через запрос, в доку все равно лезешь. В браузере, не закрывается 4 вкладки: MySql, HTML, PHP, JQuery.
Это к тому, что "хорошо" - очень относительно.
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37906654
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergSuper, беда - это когда программист вместо понимания чего и зачем он использует, пользуется чужим мнением без анализа.
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37906758
Фотография denis2710
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109,
авторГораздо хужее вумный (как вутка, тока не крякает) - оптимизатор. Ты предполагаешь одно, а он лепит - другое (например редукция неизменяемого подвыражения, которое тебе на самом деле "душу греет")...и главное молчит зараза (не крякает ведь)!
"Че да как",это например разобраться почему оптимизатор не использует индексы,а не прибивать их гвоздями.
Ну если план выполнения запроса не смотреть,то это конечно молча...
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37907623
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
denis2710,
ежели оптимизатор тупой, чего туды смотреть? ;)

В нормальном, развесистом проекте к каждой табличке идет не один запрос, и индексов там навешано как г...<вырезано самоцензурой>... много в общем. А то и по нескольку на одно поле. Нафига, заморачиваться и куда-то смотреть, когда можно тупо сказать какой конкретно именно тут нужен? ;)

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

Из прошлой жизни (исключительно как пример для понимания):

Долгое время ответственные вещи писал только на Ассемблерах, не доверяя "вумным оптимизаторам", за что был прозван в узком кругу "lastbyte" (в смысле код вылизан до последнего байта). И только после того, как Ватком С компилятор смог породить код длинной в 3 килобайта, практически совпадающий с моей писаниной "байт в байт", вплоть до выбора тех же регистровых групп и выкрутасов... в тогда начал писать всё на Сях... зная и понимая, что породит компилятор. Но, в своё время, это был лучший компилятор со всеми возможными оптимизациями.

Я это к чему: нормальному программисту оптимизатор, как таковой не нужен. Он сам оптимизатор. А начинающему, все равно не поможет, только запутает. Для простых вещей, да полезен. На то они и простые, там по большому счету "все равно".
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37907748
Фотография denis2710
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109denis2710,
ежели оптимизатор тупой, чего туды смотреть? ;)
Нафига, заморачиваться и куда-то смотреть, когда можно тупо сказать какой конкретно именно тут нужен? ;)

Нет, конечно, когда оно откровенно тупит, есть смысл и в план заглядывать... я ж не говорю о том, что оно совсем лишнее.".
Смысл смотреть на план есть всегда.Хотя нет, если 2 таблицы с 3 записями и 4 пользователями,то наверно смысла смотреть нет.
авторВ нормальном, развесистом проекте к каждой табличке идет не один запрос, и индексов там навешано как г...<вырезано самоцензурой>... много в общем. А то и по нескольку на одно поле. Нафига, заморачиваться и куда-то смотреть, когда можно тупо сказать какой конкретно именно тут нужен? ;)
А если индекс сильно дефрагментирован или выбирается значительный процент данных от общего кол-ва данных,а у вас там гвоздями заколочено юзать индекс,то по-вашему это хорошо? Если индексов там понавешано как г..а,то они и превращаются в оное.
авторЯ это к чему: нормальному программисту оптимизатор, как таковой не нужен. Он сам оптимизатор. А начинающему, все равно не поможет, только запутает. Для простых вещей, да полезен. На то они и простые, там по большому счету "все равно".
Мягко говоря странная фантазия СУБД без оптимизатора.Начинающим и не только оптимизатор помогает.Еще более полезен для сложных.И то почему получается не оптимальный план выполнения надо разбираться имхо.
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37907792
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109
Долгое время ответственные вещи писал только на Ассемблерах, не доверяя "вумным оптимизаторам", за что был прозван в узком кругу "lastbyte" (в смысле код вылизан до последнего байта). И только после того, как Ватком С компилятор смог породить код длинной в 3 килобайта, практически совпадающий с моей писаниной "байт в байт", вплоть до выбора тех же регистровых групп и выкрутасов... в тогда начал писать всё на Сях... зная и понимая, что породит компилятор. Но, в своё время, это был лучший компилятор со всеми возможными оптимизациями.
ну вообще-то хвастаться тут нечем. Вместо того что бы продукт создавать, вы занимались соревнование с компилятором, теперь перешли на борьбу с оптимизатором, неудивительно что проекты бросались прежде чем вы успевали их осчасливить
я лично никогда такой ерундй не занимался, если работает с приемлемой скоростью - то и пускай, если тормоза непонятные - то да, надо план смотреть, но это очень редко бывает
если у вас постоянно тормоза - значит вы что-то не так делаете, я бы советовал думать в эту сторону
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37907827
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109В нормальном, развесистом проекте...
....порождённом больной фантазией разработчика, который от балды создавал индексы на каждый
чих, видимо, в силу привычки работы с Paradox и прочим DBase-м.

Если для Вас такие проекты - норма, это диагноз.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37908091
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov, да, проекты из 200-500 таблиц, как-то норма. Если Вы работаете только с одной-двумя, то Вам это не надо.
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37908312
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109проекты из 200-500 таблиц, как-то норма. Если Вы работаете только с одной-двумя, то Вам
это не надо.

А вот с этого места подробнее, пожалуйста: как стратегия создания индексов зависит от
количества таблиц в базе?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37908393
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov, ну, в мускуле есть такая духитрость - на каждый ФК нужен индекс в дочерней таблице. И неважно, сколько разных значений в том поле будет. Вынь да положь ему индекс, вот и всё тут. Так что если у ТС куча связей... впрочем, я в этом сомневаюсь :)
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37908807
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglirна каждый ФК нужен индекс в дочерней таблице.

Индексы для поддержания ссылочной целостности это отдельная песня, но аффтар-то создаёт
индексы на каждое поле, да ещё и не по одному. И при этом утверждает, что чем больше в БД
таблиц, тем больше индексов надо создавать.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37908876
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov, мне нравится ваш троллинг. Где нашли про "каждое" поле? При реализации по ТЗ - также фантазируете или только тут? ;)

Там було индексов ... многа, в том числе и по НЕСКОЛЬКУ НА ОДНО поле.

И, как вам правильно указали - во-первых каждый внешний ключ в InnoDeBiloid - индексируется. Это раз, а если мне нужны составные уникальные индексы (например для вставки) - это ОТДЕЛЬНЫЙ индекс, а если мне нужны полнотекстовые для выборок - это тоже ОТДЕЛЬНЫЙ индекс, а если в отдельных (и как правило тяжелых запросах) надо иметь поиск с группировкой, то приходится иметь и сюда индекс

... потому как без индексов, ни мускуль, ни какая другая БД не пашут, и сносно работают только если вся БД целиком лезет в память.

Кстати, а где вы видели проекты в 200-500 таблиц с небольшим количеством связей? У нас нормально джойнится от 5 до 20 таблиц.
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37908907
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109Где нашли про "каждое" поле?
Здесь .

Arhat109если в отдельных (и как правило тяжелых запросах) надо иметь поиск с
группировкой, то приходится иметь и сюда индекс
Если мускуль хреново (медленно) сортирует или разработчик БД агрегирует миллиардные
таблицы, это сугубо их проблемы. Не надо обобщать.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37908939
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov, поздравляю, но там - нет этого.

И воббще, предлагаю прекратить троллинг. Тему ваще предлагаю закрыть, потому как ответ на поставленный вопрос дан и уже давно.
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37909410
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109а если мне нужны составные уникальные индексы...то это странно, т.к. такой индекс по идее должен быть один (он же натуральный ПК). Ну либо таблица не нормализована, но в таком случае афтар ССЗБ.
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37910244
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglir,

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

Во-вторых, в таких проектах, реально бывает по нескольку уникальных индексов (правильно в основном при денормализации), когда например, надо найти все письма, отправленные заданным комплектом отправителей, по заданной тематике (комбинации уникальны) в заданном диапазоне дат, а для другой выборки требуется выбрать письма, отправленные для комплекта получателей по тематикам (блин, опять уникальная комбинация...) и тоже в заданном диапазоне дат, например за последний год. И совсем неважно, как хранятся отправители, получатели и тематики писем - текстом или идентами из справочников... (например, переписка через портал покупателя с продавцом)... нормализовано (не знаю зачем - письмо оно и в африке письмо, места - хватает, выборка все равно по индексам)... и чё? Два уникальных индекса (ну не может одно письмо втыкаться повторно!) - вынь и положь. Да и быстрее должно быть как понимаю (структура индекса проще, не?).

Понятно, что на самом деле уникальны тройки отправитель-тематика-получатель, но нужны - пары.

В-третьих, абревиатура требует расшифровки.
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37910337
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109Сталкивался даже с сознательной денормализацией... под тем самым, любимым Paradox.Ну, там вообще удивляться ничему нельзя :)
Arhat109Два уникальных индекса (ну не может одно письмо втыкаться повторно!) - вынь и положь. Да и быстрее должно быть как понимаю (структура индекса проще, не?).Обозначьте структуру данных - из этого потока сознания она непонятна. Как мне видится, есть письмо с, грубо говоря, 4 значимыми атрибутами: отправитель, получатель, дата, тематика (тут может быть набор тем 1:М). Ну и куда тут может "одно письмо втыкаться повторно"?
Arhat109В-третьих, абревиатура требует расшифровки. http://lurkmore.to/ССЗБ
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37910504
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglir, пример из реального проекту.
"Письмо" - минимально так и есть 4 поля: from, to, subject, date. Утрировано, тематика и есть subject. Комбинация полей from,to,subject - уникальна. Но также, уникальны и пары from-subject и to-subject, а вот пара from-to может иметь много разных subject. Вот об ентом и речь.

Когда надо из большой (достаточно) таблички выдрать данные - используются или тот или другой индекс. Почему не повесить на них признак уникальности? ИМХО, неуникальный индекс - должен быть всяко сложнее в своей структуре... а значит - дольше. Кстати, на практике, оба индекса были построены в порядке subject-to и subject-from... глюки оптимизатора - практически гарантированы. ;)
Авторство не моё, но столкнуться пришлось...

Можете обойтись одним индексом?

Пасибки за ссылку, не знал.
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37910518
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109Комбинация полей from,to,subject - уникальна.

Это с какого перепугу?!
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37910529
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109Можете обойтись одним индексом?

Легко. В любой нормальной СУБД хватит одного индекса на Subject. И может быть ещё один на
To. Но мускулистам, видимо, такое и не снилось...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37911227
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pkarklinArhat109Комбинация полей from,to,subject - уникальна.

Это с какого перепугу?!а мне интереснее, с какого перепугу Arhat109уникальны и пары from-subjectТо есть если я написал одному адресату письмо с темой "превед", то всё, хана, остальным я не смогу такое же письмо написать?..
Dimitry SibiryakovНо мускулистам, видимо, такое и не снилосьДа нет, вообще-то ещё версия 5.1 умела (иногда) делать index intersect, то бишь использовать два отдельных индекса по двум полям (вместо одного составного). А в 5.5 афаир оптимизатору ещё мозги вправляли на эту тему...
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37911288
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglir, да ни с какого перепугу, а по условиям бизнес-модели. Я ж внятно написал (и как народ читает?!?):

1. Переписка между покупателем и продавцом. Соответственно все письма хранятся.
2. subject - утрированно тематика письма.

Один покупатель может написать одно письмо по данной тематике одному продавцу. Один продавец может ответить(!) письмом одной тематики (в ответ на ваш входящий номер) одному покупателю. Ещё, как пример: организация проведения тендеров. Тематики: получить заявку, подать документы, получить результат жеребьевки. и т.д.
, если сильно "уплощенно".
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37911290
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov, ещё раз мои поздравления. Это насчет "любой нормальной СУБД".

Любая нормальная (да и ненормальная) СУБД ложится, как только данные не лезут в память. Индексы для этого и придумали. Любая нормальная (... аналогично) ложится, как только индексы перестают лезть в память... Для этого придумали кластеры, репликации, и балансировщики нагрузок...

В этой лесенке, узкое место определяется соотношением между объемом данных и баблом, потраченным на железо (и спецов) на котором эти данные вертются. Так, к примеру на 286 машинке с 16метрами ОЗУ - какая "нормальная" СУБД НЕ ляжет на таблицах, хотя бы 1млн записей?

Не умеете, троллить - не беритесь. :)
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37911291
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109Один покупатель может написать одно письмо по данной тематике одному продавцу. Один
продавец может ответить(!) письмом одной тематики (в ответ на ваш входящий номер) одному
покупателю.

А этот покупатель уже ни в коем случае не может ответить продавцу. Забавные у вас там
отношения... Одноразовые.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37911299
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov, гы. А зачем?

Запрос покупателя == ЗАКАЗ (он сам по себе уникален) . Ответ продавца == СЧЕТ. Фсё, "поезд ушел". А вот хранить надо.

Ну или система рассылки уведомлений (по сути сильно похожа на любой спам)... аналогично. Заказчик - тематика - рассылка. Когда тематика контекстно зависит от получателя (каждой маше - свой пряник) - получаем аналогичные отношения. И таких примеров "по реальной жизни" - полно.
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37911301
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109Любая нормальная (да и ненормальная) СУБД ложится, как только данные не лезут в память.
Индексы для этого и придумали. Любая нормальная (... аналогично) ложится, как только
индексы перестают лезть в память... Для этого придумали кластеры, репликации, и
балансировщики нагрузок...

Да, придумали. Пользователи MySQL. Которые лепят такие индексы, которые больше чем сами
данные. Остальные придумали префиксное сжатие в индексах. В результате индекс для
3720051796 записей имеет размер менее 30 гигабайт и легко влазит в память любого сервера
среднего уровня целиком. При том, что целиком индексы никто и не использует. Для этого
придумали структуры по имени "деревья". Но, как я уже сказал, мускулистам такое, видимо,
недоступно.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37911303
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109Запрос покупателя == ЗАКАЗ (он сам по себе уникален) . Ответ продавца == СЧЕТ. Фсё, "поезд
ушел".

Слово "рекламация" Вам, похоже, не знакомо. И с ситуациями, когда заказы уточняются, а
счета выставляются повторно Вы тоже не сталкивались. Завидую.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37911309
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov, я привел только часть того что "придумали"... на вопрос ответите, или так проглотите? :)

Свой сервак, я уже приводил... он к 286 как-то ближее будет... ежели вчё. И с табличками от пары миллионов записей - справляется вполне себе нормально. И их там далеко не одна. Только сервис учета статистики посещений - около 20 таблиц. И только туда ежедневно валится по 100к записей, да но секольку раз (до 6 в среднем), каждая 10-я - апдейтятся. Это "между работой".
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37911312
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov, ещё раз повторюсь: "сильно уплощенно"... ну вы же не думаете, что я сейчас весь бизнес процесс вам распишу по методам, классам и хранилищам? :)
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37911328
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109Любая нормальная (да и ненормальная) СУБД ложится, как только данные не лезут в память. Индексы для этого и придумали. Любая нормальная (... аналогично) ложится, как только индексы перестают лезть в память... Для этого придумали кластеры, репликации, и балансировщики нагрузок...
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37911341
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторИ только туда ежедневно валится по 100к записей

Одна запись в секунду.

авторда но секольку раз (до 6 в среднем), каждая 10-я - апдейтятся.

И апдейт раз в полторы секунды.

Работа...
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37911384
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat10Любая нормальная (да и ненормальная) СУБД ложится, как только данные не лезут в память. Индексы для этого и придумали. Любая нормальная (... аналогично) ложится, как только индексы перестают лезть в память... Для этого придумали кластеры, репликации, и балансировщики нагрузок...
а бывают сервера с 7 тб оперативки? у нас сейчас такая база, а какая железяка я не знаю
я чего-то вообще отстал от того что в мире железа бывает, если кому не сложно напишите пару слов до чего прогресс дошел
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37911395
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergSuper,

Ну, из среднего уровня HP DL 980 G7: Up to 8 CPU x 10 Core, 4 Tb RAM.
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37911438
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pkarklinSergSuper,

Ну, из среднего уровня HP DL 980 G7: Up to 8 CPU x 10 Core, 4 Tb RAM.а из верхнего уровня? у нас чего-то очень хорошее должно быть
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37911474
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergSuperа из верхнего уровня? у нас чего-то очень хорошее должно быть

Боюсь предположить... Неужели "оно"... HP Superdomе...
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37913044
pkarklinSergSuper,

Ну, из среднего уровня HP DL 980 G7: Up to 8 CPU x 10 Core, 4 Tb RAM.
Хм, 128 слотов DDR3 DIMM, это по 128/8 = 16 слотов на проц, и при 4х канальной памяти 16/4 = 4 слота на один канал. Не слабо так они поназапихали :)

И все это в 8U, удельно по 1 CPU на 1 U, а вот это не очень много :)
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37913195
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pkarklin,
Нет. Это не работа. Это "между работой". Поскольку основная задача сервера - отдавать данные, а не писать их... отдача в районе 100к страниц в сутки (с учетом ботов, живых посетителей около 20к).
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37913210
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109отдача в районе 100к страниц в сутки
Да, да... как уже сказал pkarklin, это же целая страница в секунду!.. Аффигительная нагрузка.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37913213
Arhat109pkarklin,
Нет. Это не работа. Это "между работой". Поскольку основная задача сервера - отдавать данные, а не писать их... отдача в районе 100к страниц в сутки (с учетом ботов, живых посетителей около 20к).
В пике сколько страниц в секунду?
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37913947
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
страниц в секунду, в типовых пиках - до 5, иногда, за год наблюдал несколько раз - около 50. Один раз (за последний год) на протяжении 2.5 часов шла отдача по 170 в секунду (с 3-х ip). Правда, через 2.5 часа сервак - лег минут на 10.

Вот, в пятницу выложил новую карточку товара (урлы типа mediam.ru/g-...). Теперь "всего":
0. Запись (логирование статистики запроса)
1. Выборка основных данных по урл (собственно товар)
2 , выборка баннеров (1 запрос с джойном 4-х таблиц)
3 , выборка голосовалок (запрос с джойном 2-х таблиц)
4 , выборка данных для показа (2 запроса с джойном 15 таблиц, в т.ч. "больших")
5 , выборка статистики страницы (1 запрос к очень большим таблицам - 1..5млн записей)
6 , выборка статистики поисковых фраз (1 запрос, джойн 5 таблиц того же объема)
7 , выборка "похожих" товаров (1 запрос, джойн 4 таблиц, 3 БД)
8 , выборка "близких (под)разделов", если надо ( 1 запрос, джойн 5таблиц).

Скорость отдачи без кеширований - около 0.2 .. 0.8сек в зависимости от количества отданного. С кешированием 0.1 - 0.2сек.
...
Рейтинг: 0 / 0
MySql vs Postgre vs ?
    #37913953
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вот к примеру mediam.ru/g-sok в firebug вижу такое:

GET g-sok, 200 OK, mediam.ru, 39.1 KB, 127.0.0.1:80, 362ms
...
Рейтинг: 0 / 0
121 сообщений из 121, показаны все 5 страниц
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / MySql vs Postgre vs ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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