Лучше всего уменьшить набор результатов для сравнения с регулярным выражением перед оценкой.Регулярные выражения для всех намерений и целей невозможно проиндексировать.
Если бы мне пришлось придумать способ для этого, я бы изучил шаблоны, по которым обычно производился поиск, и пометил их каким-то индексируемым способом.во время вставки.Например, если вы используете выражение ^[abcdef]{1,4}$
для поиска по множеству, я бы сделал логический столбец first4AThruF
и в триггере вставки / обновления изменил бы столбец на true или false в зависимости от того, соответствует ли он обычномувыражение.Если бы я проиндексировал столбец first4AThruF
, и этот столбец имел достаточную избирательность, я мог бы написать запрос:
select tweet from tweets where first4AThruF = true;
, и это должно быть довольно быстрым.
Другие возможности для рассмотрения полнытекстовые запросы или предложения LIKE, хотя в вышеупомянутом случае я не ожидаю, что они будут работать хорошо.