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

Откуда:
Сообщений: 68
Пишу один WEB-проект. Основой является одна табличка, в которой будет очень много записей (данных). Поля - значения некоторых критериев для данной сущности (сущность - запись). Поля очень разные по типам (дата, время, целое, плавающие, строки и т.д.). И всё бы ничего, но в процессе работы системы должна будет выполняться сложная выборка, включая выборки вида (минимальное по некоторому полю имеющих одинаковые значения другого поля за определённое время/дату, содержащие часть строки в значении строкового поля) и т.д. (это как пример). Записей будет очень много и таблица постоянно будет расти. (для аналогии можно привести программу сбора статистики клика и систему обработки статистики по кликам) Вопрос такой: какую СУБД для этих нужд лучше выбрать, чтобы запросы были минимальными, производительность и скорость высокая при выборке и т.д. Сейчас выбрана MySQL, но боюсь что она может не "потянуть". Может имеет смысл выбрать какую-либо альтернативную базу? Есть ли спец. базы, адаптивные для работы с большими объёмами и серьёзной фильтрацией для большого количества данных по многим критериям? Или всё-таки использовать мускуль с правильно расставленными индексами и километровыми запросами. Спасибо за совет.
15 ноя 11, 10:30    [11597402]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите пожалуйста какую базу выбрать  [new]
test_sql
Member

Откуда:
Сообщений: 68
так...буду пробовать связку MySQL + MongoDB. Посмотрим, что получицца. Если у кого-то будут какие-то соображения, готов выслушать и заранее благодарен.
15 ноя 11, 11:26    [11597826]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите пожалуйста какую базу выбрать  [new]
Andrey Sribnyak
Member

Откуда: Киев
Сообщений: 600
test_sql,

А зачем сразу зоопарк плодить.. что-то одно выбрать не получается?
15 ноя 11, 12:37    [11598436]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите пожалуйста какую базу выбрать  [new]
alex_k
Member

Откуда: krasnoyarsk
Сообщений: 6694
test_sql,

возможно, стоит просчитывать статистику не по запросу пользователя, а заранее и держать ее готовой для выдачи.
если это допустимо условиями задачи, конечно.
15 ноя 11, 12:43    [11598490]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите пожалуйста какую базу выбрать  [new]
WEB-проект
Guest
А какой порядок/объем используемых данных, какая дисковая подсистема, какой % от всех данных ожидается для агрегирования и сколько строк будет в результирующей выборке?
15 ноя 11, 13:06    [11598704]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите пожалуйста какую базу выбрать  [new]
test_sql
Member

Откуда:
Сообщений: 68
alex_k,
недопустимо. В системе есть возможность постоянно менять критерии. Но как вариант. Подумаем.
15 ноя 11, 13:16    [11598797]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите пожалуйста какую базу выбрать  [new]
test_sql
Member

Откуда:
Сообщений: 68
alex_k,

нет, такое недопустимо. Критерии выборки в процессе работы постоянно меняются. Но как вариант...развить вашу мысль можно. Спасибо, обдумаем.
15 ноя 11, 13:17    [11598811]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите пожалуйста какую базу выбрать  [new]
test_sql
Member

Откуда:
Сообщений: 68
WEB-проект
А какой порядок/объем используемых данных, какая дисковая подсистема, какой % от всех данных ожидается для агрегирования и сколько строк будет в результирующей выборке?

Обрабатываться будет около 20 млн записей (в идеале), о дисковой подсистеме пока задумываться рано - но тут скорее всего проблем не будет (главное быстродействие), в результирующий выборке будет от ~3000 до 15000 запией.
15 ноя 11, 13:23    [11598882]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите пожалуйста какую базу выбрать  [new]
test_sql
Member

Откуда:
Сообщений: 68
test_sql
так...буду пробовать связку MySQL + MongoDB. Посмотрим, что получицца. Если у кого-то будут какие-то соображения, готов выслушать и заранее благодарен.


Насколько я понял MongoDB не поддерживает JOIN(помимо основной таблицы, есть ещё и другие). Ну и на первое время так будет удобнее, просто прозеркалировать данные там и там...если отказаться от какой-то выбранной никогда не поздно.
15 ноя 11, 13:25    [11598913]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите пожалуйста какую базу выбрать  [new]
MS SQL/Oracle
Guest
test_sql
WEB-проект
А какой порядок/объем используемых данных, какая дисковая подсистема, какой % от всех данных ожидается для агрегирования и сколько строк будет в результирующей выборке?

Обрабатываться будет около 20 млн записей (в идеале), о дисковой подсистеме пока задумываться рано - но тут скорее всего проблем не будет (главное быстродействие), в результирующий выборке будет от ~3000 до 15000 запией.

Красиво сказано :)

У меня на десктопе 20млн записей средней длинны 100байт, при агрегировании обрабатываются за 20 секунд в первый заход и за 2 секунды с закэшированными данными. На сервере соответсвенно 2 и 0.2 сек.
Выборка по ключу микросекунды. Но это MS SQL/Oracle.
15 ноя 11, 13:48    [11599160]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите пожалуйста какую базу выбрать  [new]
test_sql
Member

Откуда:
Сообщений: 68
MS SQL/Oracle
test_sql
пропущено...

Обрабатываться будет около 20 млн записей (в идеале), о дисковой подсистеме пока задумываться рано - но тут скорее всего проблем не будет (главное быстродействие), в результирующий выборке будет от ~3000 до 15000 запией.

Красиво сказано :)

У меня на десктопе 20млн записей средней длинны 100байт, при агрегировании обрабатываются за 20 секунд в первый заход и за 2 секунды с закэшированными данными. На сервере соответсвенно 2 и 0.2 сек.
Выборка по ключу микросекунды. Но это MS SQL/Oracle.


Я в том плане, что "железо" будет, в разумных конечно пределах...Давайте не будем брать во внимание "железную" сторону вопроса.


У меня на десктопе 20млн записей средней длинны 100байт, при агрегировании обрабатываются за 20 секунд в первый заход и за 2 секунды с закэшированными данными. На сервере соответсвенно 2 и 0.2 сек.

Вопрос всё-таки был в выборе ПО а не сервера/десктопа, согласитесь же)
15 ноя 11, 13:58    [11599237]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите пожалуйста какую базу выбрать  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67383
Блог
test_sql
Или всё-таки использовать мускуль с правильно расставленными индексами и километровыми запросами. Спасибо за совет.

Если ставить такую задачу серьёзно, то:

  • Сложные меняющиеся запросы, фильтрующие по многим полям - означает СУБД с хорошим стоимостным оптимизатором
  • Большой объём данных - означает необходимость в партиционировании
  • Скорость и статистика - означает материализацию и query rewrite.

    Что всё вместе сводит проблему выбора подходящей БД почти что к единственному варианту :) Другой вопрос, что 20 млн записей на сегодня - вполне под силу моему ноуту, по крайней мере с ораклом. И вопрос в ожидаемой плотности запросов, конечно.
  • 15 ноя 11, 14:06    [11599315]     Ответить | Цитировать Сообщить модератору
     Re: Подскажите пожалуйста какую базу выбрать  [new]
    test_sql
    Member

    Откуда:
    Сообщений: 68
    Всем спасибо за ответы/советы и дискуссию.
    Пощуаю всё-таки mongoDB(хуже не будет). По последнему сообщению позиция вполне понятно. Ещё раз всем спасибо!
    15 ноя 11, 14:27    [11599528]     Ответить | Цитировать Сообщить модератору
     Re: Подскажите пожалуйста какую базу выбрать  [new]
    SERG1257
    Member

    Откуда:
    Сообщений: 2931
    test_sql
    Подскажите пожалуйста какую базу выбрать

    1 которая есть
    2 которую знаешь
    3 которую знает знакомый гуру

    softwarer
    Сложные меняющиеся запросы, фильтрующие по многим полям - означает СУБД с хорошим стоимостным оптимизатором
    Либо дополнительные усилия для разработчика, чтобы сделать работу за оптимизатор. Полагаю, что там будет ужас, а не ужас-ужас-ужас.

    softwarer
    Большой объём данных - означает необходимость в партиционировании
    Опять же не факт. Описанные гигантские 20млн записей оставляют возможность ручного партиционирования на вьюхах.

    softwarer
    Скорость и статистика - означает материализацию и query rewrite.
    Или регламент обновления производных таблиц.

    softwarer
    Что всё вместе сводит проблему выбора подходящей БД почти что к единственному варианту :)
    Приличной стандартной СУБД с классическим, многократно опробованным подходом к дизайну базы. Ну или можете торить дорожку MongoDB
    15 ноя 11, 19:12    [11602142]     Ответить | Цитировать Сообщить модератору
     Re: Подскажите пожалуйста какую базу выбрать  [new]
    DeathHand
    Member

    Откуда: Мск>СПБ>Врн
    Сообщений: 2705
    test_sql
    Пишу один WEB-проект. Основой является одна табличка, в которой будет очень много записей (данных). Поля - значения некоторых критериев для данной сущности (сущность - запись). Поля очень разные по типам (дата, время, целое, плавающие, строки и т.д.). И всё бы ничего, но в процессе работы системы должна будет выполняться сложная выборка, включая выборки вида (минимальное по некоторому полю имеющих одинаковые значения другого поля за определённое время/дату, содержащие часть строки в значении строкового поля) и т.д. (это как пример). Записей будет очень много и таблица постоянно будет расти. (для аналогии можно привести программу сбора статистики клика и систему обработки статистики по кликам) Вопрос такой: какую СУБД для этих нужд лучше выбрать, чтобы запросы были минимальными, производительность и скорость высокая при выборке и т.д. Сейчас выбрана MySQL, но боюсь что она может не "потянуть". Может имеет смысл выбрать какую-либо альтернативную базу? Есть ли спец. базы, адаптивные для работы с большими объёмами и серьёзной фильтрацией для большого количества данных по многим критериям? Или всё-таки использовать мускуль с правильно расставленными индексами и километровыми запросами. Спасибо за совет.


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

    softwarer
    Что всё вместе сводит проблему выбора подходящей БД почти что к единственному варианту :) Другой вопрос, что 20 млн записей на сегодня - вполне под силу моему ноуту, по крайней мере с ораклом. И вопрос в ожидаемой плотности запросов, конечно.


    http://dev.mysql.com/doc/refman/5.1/en/partitioning.html
    http://ru.wikipedia.org/wiki/MyISAM
    http://ru.wikipedia.org/wiki/InnoDB

    Не согласен с единственным вариантом. Представил его стоимость для реализации веб-проекта, начала опять подниматься температура
    18 ноя 11, 09:54    [11618198]     Ответить | Цитировать Сообщить модератору
     Re: Подскажите пожалуйста какую базу выбрать  [new]
    DeathHand
    Member

    Откуда: Мск>СПБ>Врн
    Сообщений: 2705
    SERG1257
    1 которая есть
    2 которую знаешь
    3 которую знает знакомый гуру


    + мильен
    18 ноя 11, 09:54    [11618201]     Ответить | Цитировать Сообщить модератору
     Re: Подскажите пожалуйста какую базу выбрать  [new]
    softwarer
    Member

    Откуда: 127.0.0.1
    Сообщений: 67383
    Блог
    DeathHand, Вы не забыли про приличный оптимизатор?
    18 ноя 11, 19:01    [11622831]     Ответить | Цитировать Сообщить модератору
     Re: Подскажите пожалуйста какую базу выбрать  [new]
    DeathHand
    Member

    Откуда: Мск>СПБ>Врн
    Сообщений: 2705
    softwarer
    DeathHand, Вы не забыли про приличный оптимизатор?

    Ну и пускай они там дальше свою статистику собирают - пойду на другой сайт, где все открывается! (с) разьеренный анонимус

    Или поставим васьмерку с RBO?
    19 ноя 11, 00:15    [11624159]     Ответить | Цитировать Сообщить модератору
    Все форумы / Сравнение СУБД Ответить