powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Выбор БД для таблицы с 300 млн. записей и более
13 сообщений из 13, страница 1 из 1
Выбор БД для таблицы с 300 млн. записей и более
    #36148697
AJetman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Таблица состоит из:
- 1 поле первичный ключ с автоинкрементом
- 5 полей VARCHAR(255) с индексами для быстрой выборки
- 1 поле TEXT (в среднем длина текста 1500 байт)

Сейчас в таблице уже 8 млн записей, через месяц будет 30 млн, а за год до 300 млн, через три года 1 млрд. Для начала попробовал PostgreSQL 8.3, работа с БД ведется из веб-приложения на Java.

Сервер Phenom X4 c 4GB RAM и одним жестким диском на 500GB. Платить деньги за коммерческие БД смысла не вижу(если есть - поясните).

Какие потенциально могут быть у меня проблемы c БД? Сейчас, например, подсчет количества записей в таблице уже ведется с помощью триггеров(триггер на добавление-удаление ячеек), т.к. запрос SELECT COUNT(*) FROM table занимает много времени. Выборка по VARCHAR полям тоже уже происходит не так быстро, как хотелось бы.

Нужно улучшать сервер? Ставить второй жесткий диск и в RAID? Может попытаться использовать систему как Apache Hadoop?
Кроме этой таблицы, в БД будут таблицы с максимум 10 тыс. записей/

Подскажите, я новичок в СУБД. И вижу, что среди реляционных бесплатных БД выбор очень небольшой: MySQL, PostgreSQL, Firebird, Apache Derby...
...
Рейтинг: 0 / 0
Выбор БД для таблицы с 300 млн. записей и более
    #36148747
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
все нормально, кроме
AJetmanСтавить второй жесткий диск и в RAID?
второй жесткий диск это будет RAID 1. А чтобы ускорить это надо RAID 10, т.е. 4 диска, или "еще три".

Проверить с миллиардом записей не так сложно. Мне тут надо было, и я потратил 4 дня на проверку Firebird с терабайтной БД (в наибольшей таблице было чуть меньше 4-х миллиардов записей).

Так что заливай тестовые данные, и тестируй.
...
Рейтинг: 0 / 0
Выбор БД для таблицы с 300 млн. записей и более
    #36148782
AJetman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kdvвсе нормально, кроме
AJetmanСтавить второй жесткий диск и в RAID?
второй жесткий диск это будет RAID 1. А чтобы ускорить это надо RAID 10, т.е. 4 диска, или "еще три".

Проверить с миллиардом записей не так сложно. Мне тут надо было, и я потратил 4 дня на проверку Firebird с терабайтной БД (в наибольшей таблице было чуть меньше 4-х миллиардов записей).

Так что заливай тестовые данные, и тестируй. Да... Для этого тогда придется смоделировать систему с изначальными данными в хотя бы 100 млн записей и нагрузку в виде добавления 10 зап/сек.
...
Рейтинг: 0 / 0
Выбор БД для таблицы с 300 млн. записей и более
    #36148852
AAron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AJetman,

ну так проведите сайзинг. вообще, хватит ли этого сервера на 1млрд записей? сколько будет занимать база? сколько памяти понадобится для оперативной работы. запросы будут только на запись? на чтение? на запись/чтение, в какой пропорции?
...
Рейтинг: 0 / 0
Выбор БД для таблицы с 300 млн. записей и более
    #36148877
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
смотри планы запросов, вычисляй куда упрется система. 90% в i/o. один диск конечно не серьезно, диск то небойсь SATA, SCSI/SAS туда воткнуть можно ?
из опенсоурса постгрес самый серьезный, из пропретарных но бесплатных есть смысл только ibm db2 express посмотреть, но там ограничение в 2 процессорных ядра, т.е. половинку твоего процессора, поэтому нужно смотреть насколько хватает CPU ...
...
Рейтинг: 0 / 0
Выбор БД для таблицы с 300 млн. записей и более
    #36148879
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AJetmanКакие потенциально могут быть у меня проблемы c БД? Судя по всему у вас проблемы с дизайном базы. Сходите в соседний форум , а еще лучше найдите архитектора, расскажите все о вашей базе, о данных и т.д. и получите ответ. Сильно подозреваю, что вашей таблице не помешает нормализация.
AJetmanНужно улучшать сервер? Ставить второй жесткий диск и в RAID?Пока не будут решены вопросы дизайна, улучшения сервера только оттянут появление проблемы. Другой вопрос, если базу менять нельзя и тогда железо - ЕДИНСТВЕННЫЙ выход.
AJetmanПлатить деньги за коммерческие БД смысла не вижу(если есть - поясните). В каждой из баз (коммерческих или нет) есть способы решения ваших проблем. Но без должного умения платить деньги действительно смысла мало. То бишь само собой оно не полетит если вы поставите Оракл или еще что-нибудь
...
Рейтинг: 0 / 0
Выбор БД для таблицы с 300 млн. записей и более
    #36148904
serbDB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторвторой жесткий диск это будет RAID 1. А чтобы ускорить это надо RAID 10, т.е. 4 диска, или "еще три".
Либо я чего-то не понимаю, либо на двух винтах таки можно создаётся райд массив на скорость. RAID 0 "Striping". Конечно будет страдать надёжность.
Но суть не в том, лучше работать не железом, а таки согласен с SERG1257, нужно работать над структурой БД, если есть возможность.
...
Рейтинг: 0 / 0
Выбор БД для таблицы с 300 млн. записей и более
    #36148935
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AJetman
Для этого тогда придется смоделировать систему с изначальными данными в
хотя бы 100 млн записей и нагрузку в виде добавления 10 зап/сек.

Не мелочитесь и сделайте нагрузку в 1000 записей в секунду. Тогда
"изначальные данные" сами натикают за пару часов.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Выбор БД для таблицы с 300 млн. записей и более
    #36148957
AJetman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SERG1257AJetmanКакие потенциально могут быть у меня проблемы c БД? Судя по всему у вас проблемы с дизайном базы. Сходите в соседний форум , а еще лучше найдите архитектора, расскажите все о вашей базе, о данных и т.д. и получите ответ. Сильно подозреваю, что вашей таблице не помешает нормализация. Поискал информацию о "нормализации" и понял, что мои знания о БД на нуле. Только и хватает на простые веб-приложения.

Спасибо за совет сходить на соседний форум, думаю воспользуюсь, но хочу упрямо разместить сразу здесь SQL код схемы таблицы. И переименовал все поля, чтобы их названия вас не смутили:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
CREATE SEQUENCE pk_mytable;

CREATE TABLE mytable (
    id bigint NOT NULL DEFAULT nextval('pk_mytable'),
    field1 smallint NOT NULL,
    field2 varchar( 255 ) NOT NULL,
    field3 varchar( 64 ) NOT NULL,
    field4 varchar( 64 ) NOT NULL,
    field5 bigint NOT NULL,
    field6 timestamp NOT NULL,
    field7 text NOT NULL,
    field8 boolean NOT NULL,
    PRIMARY KEY (id)
);

-- Индексы только на полях, по которым произвожу выборку
CREATE INDEX field2_idx ON mytable (field2);
CREATE INDEX field3_idx ON mytable (field3);
CREATE INDEX field4_idx ON mytable (field4);
CREATE INDEX field6_idx ON mytable (field6);
CREATE INDEX field5_idx ON mytable (field5);
Таблица - хранилище логов дата-майнинга. Обработка этих данных ведется другими сторонними программами, поэтому информация в таблице должна хранится вечно, а выборка будет производится по полям, на которые создан индекс.

Сервер арендуется, поэтому изменить конфигурацию для накопителей можно, а также создать RAID-массив. Жесткий диск сейчас SATA, не SCSI.

Подтяну свою знания и проведу тесты на домашнем ноутбуке(конфигурация практически идентична, но процессор 2 ядра) и выложу изыскания на общее обозрение. А сервер на Phenom, к сожалению, уже в работе.
Поэтому, пока записей в таблице не много, подумал, что необходимо выбрать правильную базу и раз и навсегда, тем более, что "соскочить" на нее будет еще просто.
...
Рейтинг: 0 / 0
Выбор БД для таблицы с 300 млн. записей и более
    #36148961
AJetman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AAronAJetman,

ну так проведите сайзинг. вообще, хватит ли этого сервера на 1млрд записей? сколько будет занимать база? сколько памяти понадобится для оперативной работы. запросы будут только на запись? на чтение? на запись/чтение, в какой пропорции? Уже запись идет 10 зап/сек, чтение редко, но большими блоками, до 100 тыс. записей.
...
Рейтинг: 0 / 0
Выбор БД для таблицы с 300 млн. записей и более
    #36148973
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AJetman мои знания о БД на нулеЭто нормально. Найдите людей у которых это выше нуля.
AJetman но хочу упрямо разместить сразу здесь SQL код схемы таблицыУпрямость конечно не порок, но я спрашивал немного не то. Мне как и другому архитектору неинтересно, как вы это реализовали. Гораздо интереснее условия задачи.
Что за данные

Как данные добавляются/изменяются (чохом, по одной).

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

Как данные запрашиваются - примеры запросов

Где необходима оптимизация - например пофиг сколько будет занимать вставка, но чтение должно быть максимально быстро

Хрустальный шар подсказывает что это что-то типа DWH . Если так, тогда все упрощается (не вы первый не вы последний) стало быть можно пользоваться готовыми шаблонами и best practice.
Выбранная база (редакция) накладывает свои ограничения, то бишь возможно придется вручную реализовывать секционирование, материализованые представления и т.д.
...
Рейтинг: 0 / 0
Выбор БД для таблицы с 300 млн. записей и более
    #36151081
AJetman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SERG1257AJetman мои знания о БД на нулеЭто нормально. Найдите людей у которых это выше нуля.
AJetman но хочу упрямо разместить сразу здесь SQL код схемы таблицыУпрямость конечно не порок, но я спрашивал немного не то. Мне как и другому архитектору неинтересно, как вы это реализовали. Гораздо интереснее условия задачи.
Что за данные

Как данные добавляются/изменяются (чохом, по одной).

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

Как данные запрашиваются - примеры запросов

Где необходима оптимизация - например пофиг сколько будет занимать вставка, но чтение должно быть максимально быстро

Хрустальный шар подсказывает что это что-то типа DWH . Если так, тогда все упрощается (не вы первый не вы последний) стало быть можно пользоваться готовыми шаблонами и best practice.
Выбранная база (редакция) накладывает свои ограничения, то бишь возможно придется вручную реализовывать секционирование, материализованые представления и т.д.
Благодарен за наводку на DWH, вы просто открыли мне другой мир. Введя запрос Open Source Data warehouse нашел несколько очень интересных продуктов.

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

Благодарю всех за внимание!
...
Рейтинг: 0 / 0
Выбор БД для таблицы с 300 млн. записей и более
    #36151172
AAron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AJetman,
а теперь можете закрыть все, что было найдено по теме open source data warehouse. начните с теории, а дальше уже будет ясно, DWH не делают на open source.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Выбор БД для таблицы с 300 млн. записей и более
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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