172 похожих чатов

А поле на несколько полей не вариант разбить? битовые операции

не из-за желания сэкономить места появились?

21 ответов

17 просмотров

нет, это попытка ускорить фильтрацию, колонок много, разных значений мало, условия для фильтра зависят от пользовательского ввода. Было бы круто все условия на равенство объединить таким образом в 1, и получить индекс на 1 колонку

doc- Автор вопроса
doc
А как вы ускорения хотите добиться?

сравнивая 1 поле с битовой маской, вместо 1-20 полей с мелкими интами

doc- Автор вопроса
Александр Филиппенко
сравнивая 1 поле с битовой маской, вместо 1-20 пол...

Ну я ж выше спрашивал, не решили ли сэкономить на колонках. Сэкономили. Без индексов, без статистики, без конкурентных обновлений по полю, только всю строку под select for update. Редяционные базы такой подход не любят

doc
Ну я ж выше спрашивал, не решили ли сэкономить на ...

оригинальные поля-то остаются) апдейтов по этим полям и не будет скорее всего.

doc- Автор вопроса
doc- Автор вопроса
Александр Филиппенко
20 индексов по 1 колонке каждый?

Нет, смотрите на статистику запросов и под медленные ставьте. Сколько записей в таблице?

doc
Нет, смотрите на статистику запросов и под медленн...

~300k да это понятно, просто хотелось радикально вопрос решить) Спасибо)

Александр Филиппенко
сравнивая 1 поле с битовой маской, вместо 1-20 пол...

А чем char(20) не нравится? И апдейтить его при каждом изменении одного з 20 полей в строке :)

V N
А чем char(20) не нравится? И апдейтить его при ка...

тип без разницы, но можно ли получить индексированный поиск по вхождению произвольной части такой строки?

Александр Филиппенко
сравнивая 1 поле с битовой маской, вместо 1-20 пол...

Только непонятно зачем это все... Это же по сути вы просто вручную хотите создать композитный индекс... Думаете СУБД хуже вас это сделает?

V N
Только непонятно зачем это все... Это же по сути в...

композитный хорош когда поиск всегда по всем колонкам, а если юзер натыкал из 20 только 3, 8 и 17?

Александр Филиппенко
тип без разницы, но можно ли получить индексирован...

можно нагенерить декартово произведение значений 20 полей и сравнивать с ним... Единственный вопрос как рассматривать отсутствие фильтра пользователя в определенных полях (для этого тоже вероятно надо значение типа * или что-то свое в месте этого поля)...

Александр Филиппенко
композитный хорош когда поиск всегда по всем колон...

А действительно будет реальный выигрышь от лишних телодвижений по сравнению с отдельными индексами?

V N
можно нагенерить декартово произведение значений 2...

заменить пустоту на 1, а остальные сдвинуть... Маска удлинится, но должно работать, спасибо за идею)

V N
А действительно будет реальный выигрышь от лишних ...

для более простого случая и полных совпадений, он был. Тут тоже должен быть, просто не понятно было как частичные вхождения проверять. Вы подсказали как сделать полные совпадения. Если будут интересные результаты, отпишусь)

Александр Филиппенко
нет, это попытка ускорить фильтрацию, колонок мног...

звучит похоже на GIN индекс по вычисляемому выражению (например, массииву + array_ops)

alex che
звучит похоже на GIN индекс по вычисляемому выраже...

тоже вариант, правда поле может жирноватым получиться, но попробую

Александр Филиппенко
тоже вариант, правда поле может жирноватым получит...

Может быть, заодно посмотреть на https://www.postgresql.org/docs/current/bloom.html (не знаю, насколько это production-ready, правда...)?

Yaroslav Schekin
Может быть, заодно посмотреть на https://www.postg...

почему-то именно эти индексы всегда мимо меня проходили) Их тоже попробую

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта