w999d
@w999d
Web-developer

Какую базу данных выбрать для большого количества товаров?

Требования/особенности:
* скорость пакетной вставки: 10-30 тысяч рядов за секунды, желательно < 5-10сек.
* количество записей может быть ориентировочно несколько десятков миллионов. (хотя теоретически можно порезать до десятков тысяч позиций либо до сотен тысяч позиций. но в этом случае количество таблиц будет зашкаливать и возникают сложности с выборками)
* база используется исключительно для хранения полей ключ, значение, время изменения, время индексирования.
* выборка по базе выполняется по ключу (для чтения полной информации либо внесения изменений) и по времени (для индексирования в поисковой базе)

Помимо этого, какие особенности следует учитывать при использовании выбранной базы в плане пакетной вставки.
  • Вопрос задан
  • 3657 просмотров
Решения вопроса 1
@raiboon
Любая бд из перечисленных справится с этим без особых проблем. Поестите касандру, и дополню еще Tokyo Tykoon - тоже подходит под ваши нужды.
Но вы абсолютно уверены, что у вас останутся первоначальные ограничения на типы выборок? Если не особо, то берите постргрес - не ошибетесь, он тоже переварит всё это, пусть и медленнее, но зато будет значительное поле для маневра в расширении функционала.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
w999d
@w999d Автор вопроса
Web-developer
В общем-то подумал, а почему бы не хранить все строки одного прайса в одном ряду таблицы или даже в json-файле типа такого:
[{},{},{},{ '№ п/п': '2301',
    'Наименование товара': 'Шоколад НЕСТЛЕ батончик  Натс 50 гр',
    'Ед Изм': 'шт',
    'Цена': '21' },{},{},{}]

Ведь для индексации забирать их той же самой пачкой придется, да и название с ценой все равно будут в индексе. Причем можно хранить рядом предыдущий прайс и при загрузке составлять/обновлять diff-файл для облегчения работы индексатора.
Минус лишь в том, что метаданные так не сохранишь, для них все равно придется завести таблицу. Но таблица с метаданными скорее всего не будет изменяться так часто.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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