Хранилища ключей или баз данных на основе документов не являются панацеей . Если вы хотите поиграть с ними просто для удовольствия, тогда это нормально, но если вы хотите сделать это, чтобы сэкономить часть загрузки моей базы данных , я настоятельно рекомендую не тратить ваше время. Позвольте мне объяснить.
Во-первых, вы должны понимать, что эти структуры данных в последнее время стали популярными из-за необходимости масштабируемости для сверхбольших сайтов (LinkedIn, Facebook и т. Д.). И что еще более важно, они предоставили эту часть масштабируемости по цене удобства.
Думайте об этих хранилищах данных нового поколения как об урезанных базах данных, которые не имеют связей между таблицами и уровня SQL. Таким образом, записи становятся дешевыми, так как нет необходимости беспокоиться о зависимых данных. Но тогда чтение может стать дорогим (если у вас нет индекса), так как вам приходится иметь дело со сложностью O (n). Это нормально для случаев, когда идентификатор ключа всегда известен, или для заданий постобработки, где время отклика не имеет большого значения. Или вы можете выполнять быстрый поиск с индексом для плоского документа, но не ожидайте, что внешние ключи будут обрабатываться автоматически.
Если бы вы регистрировали данные в хранилище kv, вы могли бы решить проблему запроса, зарегистрировав всю запись в хранилище kv и записав ключи (идентификаторы) для случаев «сбоя» отдельно (например, могли быть сохранены под специальным ключом) , После этого вы можете найти поврежденные записи в O (1) раз. Нужно быстро искать разные случаи (не удалось сбросить пароль, не удалось зарегистрироваться)? Нет проблем, просто добавьте еще один «специальный» ключ и переиндексируйте все существующие данные :) Вы были предупреждены об утрате удобства!
Если бы вы регистрировали данные в хранилище документов, вы могли бы извлечь выгоду только в том случае, если ваши записи журнала плоские (ненормализованные). В противном случае я не вижу, как вы могли бы хранить данные в них, в первую очередь. Затем вы можете создать индексы на основе типа события и запроса по нему. Однако я не вижу большой разницы / улучшений по сравнению с тем, что вы имеете сейчас.
Но подумай об этом. Вероятно, вы потратите недели (если не месяцы) на переписывание, отладку и тестирование существующего кода регистрации. Вам придется определить различные стратегии резервного копирования. Вам будет больно объяснять это своим системным администраторам, боссам и т. Д. Или вы можете купить SSD-диск стоимостью в несколько сотен долларов и добиться таких же, если не лучше, результатов.