Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
 Выбор СУБД для приложения с массовой вставкой данных  [new]
Вячеслав Скорых
Member

Откуда:
Сообщений: 25
Планируется разработать некое Web-приложение. Предполагаемая пиковая нагрузка - 60 запросов в секунду, 5 млн. запросов в сутки. Подавляющее большинство запросов должны быть запросами на вставку данных. Остальные запросы - сбор статистики в том или ином разрезе за диапазон дат, с частым использованием операторов sum()...group by...

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

Использование XP пока не планируется. Крайне желательно наличие средств репликации БД, горячего резервного копирования. В идеале - хорошо бы иметь средства кластеризации.

На данный момент заказчик отказался от технологий Microsoft из-за стоимости, Oracle, разумеется, тоже отпадает, Interbase и его клоны я рассматривать не хочу, потому как быстрые вставки - не для этой СУБД. На руках остаются бесплатные PostgreSQL и MySQL. Вопрос: какая из данных СУБД лучше подходит под мои требования?
16 фев 05, 09:36    [1323815]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД для приложения с массовой вставкой данных  [new]
Dogen
Member

Откуда: Гондурас
Сообщений: 2976
Вячеслав Скорых
На данный момент заказчик отказался от технологий Microsoft из-за стоимости, Oracle, разумеется, тоже отпадает, Interbase и его клоны я рассматривать не хочу, потому как быстрые вставки - не для этой СУБД. На руках остаются бесплатные PostgreSQL и MySQL. Вопрос: какая из данных СУБД лучше подходит под мои требования?


По скорости выборки и сумимрования практически одинаково, но я сравнивал на сотнях тысяч записей.

Посему нет лучше пути чем смоделировать свою самою большую базу и сравнить
16 фев 05, 10:00    [1323870]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД для приложения с массовой вставкой данных  [new]
FishingIsGood
Member

Откуда:
Сообщений: 133
А delete и update? Если эти тоже будут иметь место, то смею предположить, что в PostgreSQL замучаетесь vacuum'ом. Если разговор идёт о бесплатных базах, то не выбрасывайте из рассмотрения MaxDB от MySQL. Я правда не знаю, как она себя поведёт в режиме миллионов вставок в день, т.к. подход к транзакциям тут, в отличие от PostgreSQL и MySQL, блокировочный и при обилии insert запросов это может сыграть роль. Я бы посоветывал попробывать каждую из них (благо, устанавливаются они все за 15 минут) и потом тут опубликовать результаты. :)
16 фев 05, 10:42    [1324014]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД для приложения с массовой вставкой данных  [new]
ASCRUS
Member

Откуда: МО Электросталь
Сообщений: 5994
Вячеслав Скорых
Планируется разработать некое Web-приложение. Предполагаемая пиковая нагрузка - 60 запросов в секунду, 5 млн. запросов в сутки. Подавляющее большинство запросов должны быть запросами на вставку данных. Остальные запросы - сбор статистики в том или ином разрезе за диапазон дат, с частым использованием операторов sum()...group by...

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

Использование XP пока не планируется. Крайне желательно наличие средств репликации БД, горячего резервного копирования. В идеале - хорошо бы иметь средства кластеризации.

На данный момент заказчик отказался от технологий Microsoft из-за стоимости, Oracle, разумеется, тоже отпадает, Interbase и его клоны я рассматривать не хочу, потому как быстрые вставки - не для этой СУБД. На руках остаются бесплатные PostgreSQL и MySQL. Вопрос: какая из данных СУБД лучше подходит под мои требования?

Ну во первых мне не понятно, почему Вы хотите вместо вставки записей использовать их обновление. По моему в любой СУБД вставка работает быстрее, чем обновление.
Во вторых слишком мало информации. Возникает целая серия вопросов:
1. Кол-во добавляемой информации в сутки
2. Ширина таблиц, в которых идет частое добавление/обновление информации
3. Есть ли в таких таблицах поля с плавающей длинной (тот же varchar) или длинные поля (Text, Blob, ...)
4. Длительность транзакций (кол-во вставляемых/изменяемых в пределах транзакции записей)
5. Уровень изоляции для аналитических запросов
6. Селективность таких запросов (хотя бы в процентах от всего кол-ва информации)
7. Период хранения информации
8. Планируемая конфигурация аппаратных средств
9. Требования к масштабируемости
10. Требования к надежности
11. Примерное кол-во постоянных активных сессий
12. Требования к платформе ОС и администрированию
13. Требования к ценовой политике СУБД

Вот примерный список вопросов, который сразу в голову приходит. Ответьте на все вопросы, появятся уточняющие вопросы, напишите их себе, снова ответьте, получите список требований на обоснование выбора платформы. По нему составьте тестовое задание для различных, подходящих под условия СУБД и прогоните его. Если останется парочка кандидатов, с примерно равными балами, идете их форумы и начинаете читать топики с проблемами и ответы как их обходят.

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

P.S. Будет интерес, включите в тестовый список СУБД Sybase ASA 9.0.2, раз уж у Вас денег мало, а много хочется. Почему ... почитайте здесь.
16 фев 05, 10:53    [1324045]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД для приложения с массовой вставкой данных  [new]
Вячеслав Скорых
Member

Откуда:
Сообщений: 25
ASCRUS
Ну во первых мне не понятно, почему Вы хотите вместо вставки записей использовать их обновление. По моему в любой СУБД вставка работает быстрее, чем обновление.


Безусловно это так. Однако типовому select-у придется обрабатывать до 35 млн. записей (в случае недельного отчета). Даже с учетом того, что основная нормализованная таблица будет содержать всего 7 числовых полей и 1 поле типа DATA, есть опасения, что это все-таки будет много для некоторых СУБД.

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

ASCRUS

Во вторых слишком мало информации. Возникает целая серия вопросов:


Ваш список вызывает самые разнообразные эмоции. В нем есть вопросы, на которые я косвенно уже ответил (если PostgreSQL - то это явно не Windows, а при 60 запросах в секунду не может быть и речи о длинных транзакциях, о кластерах я тоже заикнулся), есть, на мой взгляд, второстепенные, есть и такие, на которые невозможно ответить однозначно. Самое же главное, на момент написания technical proposal у меня просто нет времени на слишком скурпулёзный анализ. Позже я смогу это сделать. Но предварительные рекомендации должен дать сейчас, и довольно быстро.

Я просто ожидал отзывов типа "У нас база прирастает на 2млн. записей в день на таком-то железе и особых проблем нет". Ну или ссылки на какие-то тесты производительности, success story и т.п.
16 фев 05, 11:28    [1324171]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД для приложения с массовой вставкой данных  [new]
ASCRUS
Member

Откуда: МО Электросталь
Сообщений: 5994
автор
Ваш список вызывает самые разнообразные эмоции. В нем есть вопросы, на которые я косвенно уже ответил (если PostgreSQL - то это явно не Windows, а при 60 запросах в секунду не может быть и речи о длинных транзакциях, о кластерах я тоже заикнулся), есть, на мой взгляд, второстепенные, есть и такие, на которые невозможно ответить однозначно.

Я задал серию взаимосвязанных вопросов, их нельзя отделить один от другого. "Косвенно" ответив только на пару вопросов, Вы не приближаетесь к оптимальному решению поставленной задачи, так как они не имеют по отдельности при выборе СУБД большой пользы.

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

Быстро - это как ? Сегодня, завтра или вчера ? А может все таки лучше найти недельку, написать типовой ANSI-SQL тест и для каждой предварительно подходящей СУБД сделать серию тестов хотя бы на скорость вставки, выполнения запросов на определенном кол-ве активных сессий ?

автор
Я просто ожидал отзывов типа "У нас база прирастает на 2млн. записей в день на таком-то железе и особых проблем нет". Ну или ссылки на какие-то тесты производительности, success story и т.п.

Я могу за любую СУБД ответить, что там база прирастает на 2 млн записей в день и никаких проблем :) Только окажется что в каждом случае разная задача, разные условия, разная реализация, большой уровень профессионализма того, кто ее проектировал. И что с этого можно будет выбрать ?

Резюме: я так понимаю Вы уже остановились на выборе 2 СУБД - Postgre или MySQL. Ну дык поройте по их форумам, задайте в каждом из них этот вопрос, почитайте у кого какие проблемы были с такими нагрузками. Здесь окромя флейма ничего путного не получится.
16 фев 05, 12:21    [1324354]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД для приложения с массовой вставкой данных  [new]
Картежник
Guest
Вячеслав Скорых

Я просто ожидал отзывов типа "У нас база прирастает на 2млн. записей в день на таком-то железе и особых проблем нет". Ну или ссылки на какие-то тесты производительности, success story и т.п.


Хотите Success story не вопрос
Система обработки транзакиций по пластиковым картам
40 авторизационных запросов в секунду от банкоматов
посов и платежных систем. Это ~1 500 000 в сутки.
+ Фоновое закрытие дня, репорты , загрузка offline операций(пополнений по картам и т.д) ~ 700 000 транзакций в день.
85% OLTP + 15 % DSS.

~100 пользовательских мест.
~200 постоянно активных сессий на сервере.

Informix dynamic server 9.40 FC4.
4 X IBM Pseries Power4 8 Gb Ram .
База данных ~ 700 Gb.

Вывод : Хотите быстро ездить - покупайте быстрых коней.
17 фев 05, 17:27    [1329025]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД для приложения с массовой вставкой данных  [new]
Alexey Rovdo
Member

Откуда: Москва
Сообщений: 913
Действительно Informix для такой задачи кажется вполне подходящим выбором.
Со своей стороны могу предложить объектную СУБД Versant Developer Suite. Судя по описанию задачи она вполне справится со всем необходимым.
Разумеется она не бесплатна, но о цене можно говорить.
17 фев 05, 18:44    [1329277]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД для приложения с массовой вставкой данных  [new]
Мимопроходящий
Member

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

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

Alexey
AR> Действительно Informix для такой задачи кажется вполне подходящим выбором.
AR> Со своей стороны могу предложить объектную СУБД Versant Developer Suite.
AR> Судя по описанию задачи она вполне справится со всем необходимым.
AR> Разумеется она не бесплатна, но о цене можно говорить.

БРАВО! БИС!


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

Posted via ActualForum NNTP Server 1.1

17 фев 05, 18:53    [1329301]     Ответить | Цитировать Сообщить модератору
Все форумы / Сравнение СУБД Ответить