Я работаю над веб-приложением Python / Django ... и я действительно просто копаюсь в Python впервые (обычно я являюсь разработчиком стека .NET / core) ... в настоящее время работаю на PostgreSQL набэкенд.У меня есть около 9-10 простых (2-мерных) справочных таблиц, которые очень, очень часто будут отображаться в реальном времени, и я хотел бы их кэшировать в памяти.
В идеале я хотел бы сделать это с самим Postgres, но может случиться так, что другой движок данных и / или какая-то другая библиотека подойдет для этого (я не очень знаком с библиотеками Python).
Цели будут:
Поиск выполняется в памяти (объем данных никогда не будет большим).
В идеале результаты могут кэшироваться после первого извлечения (путем полной сигнатуры параметра) для оптимизации времени, хотя это несколько необязательно, так как я предполагаю, что поиск в памяти в любом случае будет довольно быстрым .... и
Также необязательно, но в идеале, даже несмотря на то, что таблицы поиска хранятся отдельно в БД для целей импорта / удобочитаемости / редактирования, я бы подумал, что генерация массива х для поиска при загрузке в память будетбыть оптимальным.Хотя всего имеется около 9-10 таблиц поиска, в таблице может быть только 10-15 значений (некоторые меньше) и, возможно, всего всего 15 параметров для полного поиска по всем таблицам.В основном это 9-10 таблиц модификатора для уравнения .... поэтому, учитывая определенные значения, мы ищем значения x / y в каждой таблице, получаем значение и складываем их вместе.
Итак, я думаю, что я ищу библиотеку и / или подходящий бэкэнд, который обрабатывает загрузку и кэширование в памяти (опять же, общий размер этого места в ОЗУ никогда не будетфактор) ... и, возможно, может автоматически преобразовать таблицы поиска x в одну таблицу трехмерных данных в памяти для повышения эффективности (вместо того, чтобы делать 9-10 просмотров отдельно) ... и кэшировать эти результаты для повторного использования, когдавсе параметры соответствуют предыдущему запросу (если поиск не выполняется так быстро, это не имеет значения).
Таблицы поиска невелики ... Я бы сказал, что если бы я написал код, разбивающий каждое значение / диапазон значений x / y, и вручную создал бы одну гигантскую таблицу поиска в x-измерениях, это, вероятно, завершилось быможет быть, с 15 полями и 150 строками строк ... так что мы не говорим много данных ... но это будет очень, очень часто, и я не хочу выполнять эти поиски каждый раз с реальной БД.
Рекомендации для движка / библиотеки, наиболее подходящие для этого (с предпочтением возможности использовать postgresql для постоянного хранения), очень приветствуются.