Case 1: Если parameter_id обозримо конечен, то попробуйте представить их набор "в одну строку" как число (битовыми масками)
andylars 23.11.2015 22:24
/ 24.11.2015 00:34
На "не сложный" случай, есть тип поля SET для MySQL вроде бы допускает до 64-х значений на одно такое поле.
Работает быстро т.к. это битовые маски.
т.е. в "одной строке" в колонке типа SET могут быть
сразу 64 разных значения или любой их набор.
Таким образом,
id parameter_id
1 1,2,5,8,19,32
2 1
3 8,9,54,12
Работать это будет очень быстро и одновременно легко.
Вообще можно и пролонгировать кол-во параметров
больше 64, либо "на коленках" - введя диапазоны
и добавив еще допустим 10 колонок типа SET
получив 640 уникальных параметров одновременно в одной строке.
А можно и самому на коленке битовые маски собрать.
За примером ходить не надо, permission в unix
rwx-rwx-rwx - как раз и вычисляет "включенные" и "выключенные"
опции через битовые маски.
где конечная уникальная последовательность опций, есть уникальное
число,
rwx rwx rwx = 777, rw- --- --- = 600 (в Octet)
или 111 111 111, 110 000 000 в Binary соответственно
математика этого довольно простая, и ее можно сделать самому.
И если набор опций обозримо конечен (т.е. 1 бит уникальную опцию), то выборка последовательности включенных опций должна быть обозрима быстрее и компактнее в хранении.
Тут надо эксперементировать.
SET явно использует 8-байтовый BIGINT - поэтому и 64 значения (бита)
Будет ли удобнее/быстрее сделать несколько SET-ов,
или сконвертировать свое большое число в CHAR(fixed)
и самому считать перед SELECT/INSERT - надо пробовать.
Бенчмарки например на CHAR(36) показали, что они работают
быстрее чем CHAR(36) c INDEX
# это показал бенчмарк, как быстрее хранить и работать с UUID
- Помогите с куском запроса MySQL, Arey 20.11.2015 21:52
- Задачу решил. Сделал набор таблиц содержащих в названии полей id параметра., Arey 03.12.2015 22:30
- Эмм..., Maxx [M] 04.12.2015 02:42
- Ответ, Arey 07.12.2015 02:02
- а данных то много?, Misha v.3 [M] 24.11.2015 10:52 / 24.11.2015 10:54
- Case 2: Используйте дайджест хеш от последовательности опций., andylars 23.11.2015 22:45
- Case 1: Если parameter_id обозримо конечен, то попробуйте представить их набор "в одну строку" как число (битовыми масками) , andylars 23.11.2015 22:24 / 24.11.2015 00:34
- Ответ, Misha v.3 [M] 21.11.2015 01:04 / 21.11.2015 01:16
- Ответ, G_Z [M] 20.11.2015 23:45
- Для реляционной базы это плохой запрос..., Sumo [M] 20.11.2015 23:21