Mysql - особенности типа Set при выборке

Вводные: найти все id обьектов, у которых есть параметр X. Далее эти Id группируем, и производим след. фильтрацию по другой таблице соответствий - год, и тд

Вариантов параметров X 30 штук, но у одного обьекта может быть до 10

Размер списка обьектов - 2 миллиона, связей, соответственно, 20 миллионов.

Изначально был план создать таблицу на 20 миллионов связей с полем параметра tinyint и выборками путем in.

Решение с set показалось красивее. Сам индекс будет короче.

Но через документацию слабые обьяснения, не показаны примеры как данные влияют на занимаемую память.

Не совсем понятны запросы.

set_col = 'val1,val2';

Ищет все вхождения? Ищет последовательность в том виде что записана, или это просто перечисление? А если вхождения не будет одного типа?

"Второй ищет точное совпадение." Тоесть если я поищу по val1,val3 а там еще и вставлено val2, то не найден? Или ищет по типу или или?

А можно сделать без или, с "и" ?

set_col & 1, 2, 3 какое поведение?

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

Ну зато 2к записей будет а не 20. Ваши идеи?


Ответы (0 шт):