Задать вопрос
@sergeevpetro
Junior Developer

Быстрый поиск по базе. Что выбрать?

Здравствуйте, уважаемые!

Необходимо разработать программу для работы с постоянно пополняющейся базой данных. Алгоритм работы программы очень простой: если строка в базе не существует, то добавить её в базу.
Вопрос заключается в том, что база планируется очень большая, порядка миллиона записей и постоянное обращение к ней для проверки существования той или иной строки. База ещё не существует, но планируется, чтобы она была простой по структуре, примерно "ключ-значение"...
Писать буду на C#.
Интересно было бы узнать в каком формате лучше всего хранить БД (XML, JSON и т.д. кроме SQL) и каким алгоритмом поиска воспользоваться, чтобы это дело быстро работало.
  • Вопрос задан
  • 2336 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
arusef
@arusef
Novice .NET dev
Не нравится SQL - пользуйтесь NoSQL, например MongoDB. Там заодно и индексы поддерживаются и всякое такое. Можно организовать и дерево. А можно метрическое пространство по кастомным хешам строк. Это уж как захочется.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Смотрите в сторону организации дерева.
Каждый узел дерева - это буква в строке.
Лучший способ хранения дерева - бинарные последовательности.
Ответ написан
EreminD
@EreminD
Кое-что умею
Большой (реально) объем структурированных данных -> БД
Ну а там уже индексы, ХП и прочие истории повышения производительности
Ответ написан
Nipheris
@Nipheris Куратор тега C#
кроме SQL

Ну раз не SQL (каковы объективные причины?), то берите любую key-value базу и пишите в неё. Поиск будет идти по ключу целиком или по части?
Вы сейчас описали стандартную задачу для любой нормальной базы данных. Т.е. той, в которой есть индексы. Рассуждать имеет смысл только если вы укажете, насколько часто будут вставляться строки, и какие точно будут выборки.
Ответ написан
Ваш ответ на вопрос

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

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