Который является эффективным дБ для автозаполнения для нескольких миллионов данных
Мне нужно знать, какой из них будет лучшим БД для автостопных БД с 80 миллионами записей...
1)Redis
2)tokyoCabinet
3)Kyoto Cabinet
2 ответа
Этот сайт может иметь то, что вы ищете: http://perfectmarket.com/blog/not_only_nosql_review_solution_evaluation_guide_chart
У вас есть несколько вещей для рассмотрения:
- Объем данных - база данных должна уметь обрабатывать множество записей и больших файлов
- Элемент списка
- Скорость вставок и поиска
- Стабильность - вы не хотите падать, потому что вы бьете по БД множеством попаданий, как это обычно происходит с автозаполнением.
Я знаю, что это не в вашем списке, но я бы пошел с MongoDB. Если вы не можете, то я бы пошел с Redis, просто для фактора скорости.
Redis отлично подходит для автозаполнения из-за его отсортированных наборов (реализованных в виде списка пропусков). Схема, которую я использовал с успехом, в основном содержит каждое частичное слово в качестве ключа (поэтому "python" будет сопоставляться с ключами: "py", "pyt", "pyth", "pytho" и "python"). Данные, связанные с каждым ключом, представляют собой отсортированный набор, в котором присутствует значение, обеспечивающее лексическое упорядочение исходной фразы (обеспечивает сортировку результатов), а ключ представляет собой отображение идентификатора на данные, которые вы хотите вернуть. Затем я храню идентификаторы и данные в хэше.
Вот пример проекта, написанного на python, с более подробной информацией: https://github.com/coleifer/redis-completion