Какой движок базы данных для большого набора данных

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

Каждый ряд содержит:

  • Я БЫ
  • Дата
  • владелец
  • Крайний срок
  • Проверить дату
  • Checkin_date

Я положил все это в таблицу MySQL, а затем начал запрашивать это для моего анализа анализа, однако простой запрос (SELECT * FROM table WHERE ID = something) где требуется 9-10 минут для завершения. Поэтому я создал индекс для всех столбцов, что сделало его заметным быстрее ~ 30 сек.

Поэтому я начал читать похожие проблемы, и люди рекомендовали переключиться на "Широкое хранилище столбцов" или "Поисковая система" вместо "Реляционный".

Поэтому мой вопрос: какой механизм базы данных лучше всего использовать для этих данных?

2 ответа

Ответ, конечно, "это зависит". В вашем примере вы подсчитываете количество записей в базе данных с заданным идентификатором. Мне трудно поверить, что в MySQL это займет 30 секунд, если только вы не используете какой-нибудь вялый ноутбук.

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

Такие системы, как Elasticsearch, хороши с текстами, но могут не подходить для вашей системы, в зависимости от использования. Из вашей схемы у вас есть одно текстовое поле ("владелец"), и вам не понадобятся возможности поиска текста Elasticsearch в таком поле (кому когда-либо нужно было вводить имя пользователя?). Elasticsearch также широко используется для файлов журналов, которые также не нуждаются в текстовом движке. Это, однако, хорошо с блоками текста и с кластеризацией.

Если это назначение класса, я бы придерживался MySQL.

Использование поисковой системы для поиска является ИМО лучшим вариантом.

Elasticsearch конечно!

Отказ от ответственности: я работаю на резинке.:)

Другие вопросы по тегам