Выбор базы данных для большого объема данных?

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

Количество таблиц будет небольшим (<15), большая часть данных (99%) будет содержаться в одной большой таблице, которая почти только для вставки /чтения (без обновлений).

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

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

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

39 голосов | спросил Marko 10 MarpmTue, 10 Mar 2009 12:34:40 +03002009-03-10T12:34:40+03:0012 2009, 12:34:40

5 ответов


0

Я использовал PostgreSQL в среде, где мы видим 100K-2M новых строк в день, большинство из которых добавляются в одну таблицу. Однако эти строки, как правило, сводятся к выборкам, а затем удаляются в течение нескольких дней, поэтому я не могу говорить о долгосрочной производительности с более чем 100 миллионами строк.

Я обнаружил, что производительность вставки вполне приемлема, особенно если вы используете массовую копию. Производительность запросов хорошая, хотя выбор, который делает планировщик, иногда озадачивает меня; особенно при выполнении СОЕДИНЕНИЙ /СУЩЕСТВ. Наша база данных требует довольно регулярного обслуживания (VACUUM /ANALYZE), чтобы обеспечить ее бесперебойную работу. Я мог бы избежать этого, более тщательно оптимизировав автовакуум и другие настройки, и это не такая большая проблема, если вы не делаете много УДАЛЕНИЙ. В целом, в некоторых областях мне кажется, что настроить и поддерживать сложнее, чем должно быть.

Я не использовал Oracle, а MySQL только для небольших наборов данных, поэтому я не могу сравнить производительность. Но PostgreSQL отлично работает для больших наборов данных.

ответил DNS 10 MarpmTue, 10 Mar 2009 18:02:16 +03002009-03-10T18:02:16+03:0006 2009, 18:02:16
0

У вас есть копия " Набор инструментов хранилища данных "?

Есть предложение сделать следующее.

  1. Отделите фактические (измеримые, числовые) значения от измерений, которые квалифицируют или систематизируют эти факты. Один большой стол не самая лучшая идея. Это таблица фактов, которая доминирует в дизайне, плюс ряд небольших таблиц измерений, позволяющих «разрезать и нарезать кубиками» факты.

  2. Сохраняйте факты в простых простых файлах, пока не захотите создавать отчеты в стиле SQL. Не создавайте и не создавайте резервную копию базы данных. Создавать и резервировать файлы; загружать базу данных только для отчетов, которые вы должны делать из SQL.

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

ответил S.Lott 10 MarpmTue, 10 Mar 2009 13:05:23 +03002009-03-10T13:05:23+03:0001 2009, 13:05:23
0

Google база данных BigTable и Hadoop - это два ядра базы данных, которые могут обрабатывать большие объемы данных.

ответил MrValdez 10 MarpmTue, 10 Mar 2009 12:36:42 +03002009-03-10T12:36:42+03:0012 2009, 12:36:42
0

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

Дело еще проще, если вам не нужны прямые отчеты по нему. Я бы зеркалировал и агрегировал данные на каком-то другом сервере, например ежедневная партия. Как предположил С.Лотт, вы можете прочитать о хранилище данных.

ответил user76035 10 MarpmTue, 10 Mar 2009 13:43:17 +03002009-03-10T13:43:17+03:0001 2009, 13:43:17
0

Мы используем Firebird для действительно огромной базы данных (хранящей данные более 30 лет), и она масштабируется очень хорошо.

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

ответил Xn0vv3r 10 MarpmTue, 10 Mar 2009 12:41:26 +03002009-03-10T12:41:26+03:0012 2009, 12:41:26

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132