Обновить

Комментарии 5

Почему «парзер»? Откуда это, если даже англоязычные произносят [s]?

я как-то чаще слышал “з” чем “с”, но таки да, заимствованное должно быть с “с”.

https://www.oed.com/dictionary/parser_n – “British English /ˈpɑːzə/ PAR-zuh”

Но по-американски всё же /ˈpɑrsər/

Если мы со стороны приложения -- то можно втыкать проверки и ограничения на количества повторяемых элементов: ограничивать количество в IN (?), ограничивать количество OR/AND, ограничивать число элементов в форме, понизить максимальный размер форм

Ограничивать - это экстенсив, от которого мало толку. Логику выполнения на уровне формирования запроса нужно менять. Если встречается что-то типа AND (0=1 OR cat_id=1 OR cat_id=2 OR cat_id=3) из ~десятка (предел определяется экспериментально) или менее вариантов значения - выполняем как написано, иначе сливаем набор критериев во временную таблицу (которую ещё и проиндексировать можно). Одно дополнительное ветвление в интерактивной части кода и два разных шаблона запроса - потери минимальны, зато эффект налицо.

В данном случае надо просто IN(?) - тогда тормозить начнёт от миллиарда параметров.

Но случаи они разные бывают, мне тут напомнили, как эластик переписывал запрос, так что “a a a a a a a” превращалось в text ilike "%a%" or...

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации