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. Ваши идеи?