БЕГЕМОТИКОВ МОЖНО! Войти !bnw Сегодня Клубы
Давайте поиграем в игру. Есть таблицы t1 и t2. В каждой есть колонка text. Нужно в t1.text || t2.text искать LIKE %a% AND LIKE %b% AND LIKE %c%..., причем сколько этих AND будет — непонятно. Ну, ничего сложного — делаем джоин, в селекте делаем конкатенацию, все это запихиваем в подзапрос и сверху хуярим наши WHERE-лайки. Однако записей становится дохуя и все начинает тормозить. По очевидным причинам индексы нихуя не помогают. Как выебнуться в этом случае, не прибегая к денормализации и мужеложеству?
#GPWDNM / @komar / 2982 дня назад

select * form t1 where text like %a% and like %b% and like %c% union select * form t2 where text like %a% and like %b% and like %c%
#GPWDNM/ANK / @krkm / 2982 дня назад
или хуярь таблицу patterns куда свои лайки скложишь и SELECT t1.* FROM t1 JOIN patterns ON (t1.text LIKE patterns.pattern);
#GPWDNM/3GM / @krkm / 2982 дня назад
@krkm > не прибегая к денормализации и мужеложеству
#GPWDNM/DH3 / @komar --> #GPWDNM/3GM / 2982 дня назад
@krkm В этом случае на данных "куркума чита" "ет жопой" не сработает like %читает% AND like %жопой%.
#GPWDNM/XCD / @komar --> #GPWDNM/ANK / 2982 дня назад
google postgres materialized view indexes а вообще, подозреваю что твои строки - нихуя не строки, а дизайнер базы - мудак.
#GPWDNM/MXW / @anonymous / 2982 дня назад
@anonymous Ну это кеш. А кеш это хуета и денормализация. Строки мои строки, дизайнер базы не мудак, просто не знал, что я по им хитровыебанно искать буду.
#GPWDNM/2YR / @komar --> #GPWDNM/MXW / 2982 дня назад
@komar >А кеш это хуета и денормализация. у тебя тогда ит на 95% начиная с железа - хуета и денормализация. проблема что вьюху обновлять дорого, да. короче, в таком виде, думаю не решается. можешь поебаться конечно и прикрутить pg_trgm, но охуеешь. ебись в данные короче.
#GPWDNM/EHP / @anonymous --> #GPWDNM/2YR / 2982 дня назад
@anonymous В железе кеши можно вылизать, а я быдлокодер, мне некогда, мне надо новые формочки прикручивать. Решение вообще-то очень хорошее. Я почему-то забыл, что поверх матвьюхи можно индексы херачить, и решил собирать строки в отдельной колонке. А pg_trgm тут вообще зачем?
#GPWDNM/UK7 / @komar --> #GPWDNM/EHP / 2982 дня назад
@komar хорошее только если редкий запрос/редко обновляются таблицы. чтобы матчить отрезанные куски слов, очевидно.
#GPWDNM/8OF / @anonymous --> #GPWDNM/UK7 / 2982 дня назад
@anonymous Ну, с отрезанными кусками слов я совсем загнул. В моей реальной задаче я всего лишь собираю адреса.
#GPWDNM/7X0 / @komar --> #GPWDNM/8OF / 2982 дня назад
@komar ну и хули тогда мозги ебёшь тут людям. нормализуй адреса, нормализуй таблицы. расплодили блять, денежные мешки говнокодеров.
#GPWDNM/XMS / @anonymous --> #GPWDNM/7X0 / 2982 дня назад
@anonymous дык по нормализованным искать долго в /0 написано же, хули ты
#GPWDNM/BRA / @komar --> #GPWDNM/XMS / 2982 дня назад
@komar схуяли долго, если можно построить нормальный индекс, без еботни
#GPWDNM/ATP / @anonymous --> #GPWDNM/BRA / 2982 дня назад
@anonymous Индекс поверх матвьюхи, где неконсистентность и погибель? Да иди ты нахуй.
#GPWDNM/6WA / @komar --> #GPWDNM/ATP / 2982 дня назад
@komar бля, тупой штоле, /XMS в данном контексте уже
#GPWDNM/R60 / @anonymous --> #GPWDNM/6WA / 2982 дня назад
@anonymous Что ты несешь, сука? Как индекс по полям в разных таблицах помогут искать по слепленной строке?
#GPWDNM/9BS / @komar --> #GPWDNM/R60 / 2982 дня назад
@komar разлепи строки, тупица.
#GPWDNM/1FX / @anonymous --> #GPWDNM/9BS / 2982 дня назад
@anonymous Разлепил, что дальше?
#GPWDNM/NEL / @komar --> #GPWDNM/1FX / 2982 дня назад
@komar теперь можешь делать индексы и юнион в запросе
#GPWDNM/LX8 / @anonymous --> #GPWDNM/NEL / 2982 дня назад
@anonymous jesus, да вы и задачи-то не поняли нихуя
#GPWDNM/THZ / @komar --> #GPWDNM/LX8 / 2982 дня назад
@komar как написал, так и понял //да всё ясно-понятно всем уже давно, ты чото тупишь
#GPWDNM/TTF / @anonymous --> #GPWDNM/THZ / 2982 дня назад

предлагаю mongodb

#GPWDNM/Y1P / @anonymous / 2979 дней назад
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.