Мне нужно разработать бэкэнд ключ / значение, что-то вроде этого:
Table T1 id-PK, Key - string, Value - string
INSERT into T1('String1', 'Value1')
INSERT INTO T1('String1', 'Value2')
Table T2 id-PK2, id2->external key to id
some other data in T2, which references data in T1 (like users which have those K/V etc)
Я слышал о PostgreSQL hstore с GIN / GIST.Что лучше (с точки зрения производительности)?Делать это традиционным способом с SQL-соединениями и иметь отдельные столбцы (ключ / значение)?Работает ли PostgreSQL hstore лучше в этом случае?
Формат данных должен быть любым ключом => любым значением.Я также хочу сделать сопоставление текста, например, частичный поиск (LIKE% в SQL или использование эквивалента hstore).Я планирую иметь около 1M-2M записей в нем и, вероятно, в какой-то момент масштабировать.
Что вы рекомендуете?Идем ли мы традиционным способом SQL / PostgreSQL hstore или любым другим распределенным хранилищем ключей / значений с постоянством?
Если это поможет, мой сервер - это VPS с 1-2 ГБ ОЗУ, так что это не очень хорошее оборудование.Я также думал о том, чтобы поверх этого был слой кеша, но я думаю, что это несколько усложняет проблему.Я просто хочу хорошую производительность для 2M записей.Обновления будут выполняться часто, но поиск будет выполняться еще чаще.
Спасибо.