У меня есть несколько баз данных SQL, каждая из которых содержит множество таблиц. Они преимущественно имеют случайно сгенерированные идентификаторы в качестве первичных ключей строк. Я хотел бы найти способ найти данные таблицы и строки, связанные с данным Guid (без информации о типе).
Поэтому я рассматривал возможность настройки фильтра Блума для каждой таблицы и кэширования его где-нибудь. Я бы сначала протестировал Guid против фильтра, а затем запросил бы данные в базе данных или кеше (или для ложного срабатывания). Однако я никогда раньше с ними не работал и поэтому не знаю, каковы их ТТХ и будут ли они эффективным решением моей проблемы.
Характеристики базы данных:
~100 столов на выбор. Некоторые из них выбираются с гораздо большей вероятностью, чем другие.
Никакие строки никогда не удаляются (если только не выполняется ручная очистка после ошибки), поэтому меня не беспокоит невозможность удалить информацию из фильтра Блума.
Больше структуры, чем данных! Все помещается на один сервер.
Стоит ли исследовать это решение? Лучше ли мне придерживаться кэширования более традиционных структур поиска? Если я выберу Блума, есть ли какие-нибудь ярлыки для функций хеширования, учитывая, что Guids — очень независимый ввод?