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

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

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

21 ответов

15 просмотров

нет, это попытка ускорить фильтрацию, колонок много, разных значений мало, условия для фильтра зависят от пользовательского ввода. Было бы круто все условия на равенство объединить таким образом в 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...

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

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

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

Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
я так понимаю, я так подозреваю, что создание такого плагина для человека, кто умеет писать плагины для делфи потребует минут 5-10 времени. но это мое подозрение. хотелось бы ...
Kraszx
7
Коллеги, добрый вечер. Создаю коллекцию от TFPGMap, ключ - перечисление, значение - целое. Нужно отсортировать коллекцию по значению. Как это можно сделать?
Kirill Filippenok
11
Скажи а ты когда этот канал создавал ты уже дельфи не любил, или это со временем пришло?
Роман Лях (rgreat)
18
Привет, такой вопросик появился кажется ли вам что Rust слишком сложный/строгий для высокоуровневого программирования и слишком "безопасный"/строгий для низкоуровневого?
Крокант
10
Всем привет! Использую кастомное модальное диалоговое окошко, все по классике - mrOK, mrCancel как ModalResult. Однако есть нюанс - в главной форме есть универсальный обработч...
Олег Гранишевский
20
Карта сайта