Верхний предел для количества строк в базах данных с открытым исходным кодом?

StackOverflow https://stackoverflow.com/questions/1140369

Вопрос

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

CREATE TABLE data (
    source1 CHAR(5),
    source2 CHAR(5),
    idx11   INT,
    idx12   INT,
    idx21   INT,
    idx22   INT,
    point1  FLOAT,
    point2  FLOAT
);

Сколько таких моментов я могу иметь с разумной производительностью? В настоящее время у меня есть ~ 150 миллионов данных, и у меня, вероятно, не будет более 300 миллионов. Предположим, что я использую коробку с 4 двухъядерными процессорами 2 ГГц Xeon и 8 ГБ оперативной памяти.

Это было полезно?

Решение

MySQL более чем способен удовлетворить ваши потребности, а также предложение Алекса о PostgreSQL. Разумная производительность не должна быть сложной для достижения, но если таблица будет значительно доступна и будет иметь большое количество DML, вы захотите узнать больше о блокировке, используемой базой данных, которую вы в конечном итоге выбираете.

Я считаю, что PostgreSQL может использовать блокировку уровня строк из коробки, где MySQL будет зависеть от выбранного вами движения хранения. Myisam только блокируется на уровне таблицы, и, следовательно, параллелизм страдает, но двигатели для хранения, такие как Innodb для MySQL Can и будут использовать блокировку уровня строк для увеличения пропускной способности. Мое предложение было бы начать с Myisam и переехать в Innodb, только если вы обнаружите, что вам нужна блокировка уровня строк. Myisam хорошо работает в большинстве ситуаций и очень легкий. У меня было таблицы более 1 миллиарда строк в MySQL, используя Myisam, и с хорошей индексацией и разделением вы можете получить отличную производительность. Вы можете прочитать больше о двигателях хранения в MySQL вMySQL Хранения и о распределении таблицы в Таблица распределения. Анкет Вот статья о разделы на практике на таблице 113 млн строк что вы также можете найти полезным.

Я думаю, что преимущества хранения данных в реляционной базе данных намного перевешивают затраты. Есть так много вещей, которые вы можете сделать, как только ваши данные находятся в базе данных. Восстановление времени, обеспечение целостности данных, более тонкий доступ к безопасности, разделение данных, доступность для других приложений через общий язык. (SQL) и т. Д. И т. Д.

Удачи с вашим проектом.

Другие советы

Postgresql Должен иметь возможность приспособиться к вашим данным - до 32 терабайт на таблицу и т. Д. И т. Д. Если я правильно понимаю, вы говорите о 5 ГБ в настоящее время, максимум 10 ГБ (около 36 байтов/строки и до 300 миллионов рядов ), поэтому практически любая база данных на самом деле должна быть в состоянии разместить вас легко.

К вашему сведению: Postgres масштабируется лучше, чем MySQL по нескольким процессору / перекрывающимся запросам, из обзора, который я читал несколько месяцев назад (извините, без ссылки).

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

OTOH, если данные будут загружены один раз, а затем отсканированы одним потоком, возможно, MySQL в его режиме «кислота не требуется», будет лучшим совпадением.

У вас есть некоторое планирование, если вы можете выбрать «Лучший» стек.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top