За последние 24 часа нас посетили 8629 программистов и 466 роботов. Сейчас ищут 102 программиста ...

Битовые маски

Тема в разделе "MySQL", создана пользователем Sergey89, 10 авг 2008.

  1. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Кто-нибудь имеет реальный опыт использования битовых масов для хранения опций? Насколько быстра выборка с использованием побитовых операторов? Надо сохранить большое число опций. Чекбокс решил хранить как 1 бит (0 - не установлен, 1 - установлен). Варианты решил хранить тоже в int но по 4 бита, итого до 8 опций из 15 вариантов.

    upd. насколько я понял в поле типа SET опции хранятся именно как битовая маска.
     
  2. AlexGousev

    AlexGousev Активный пользователь

    С нами с:
    25 мар 2006
    Сообщения:
    1.505
    Симпатии:
    0
    Адрес:
    Москва
    А при чем тут скорость выборки?
    Или ты хочешь условия по этому полю делать? Тогда будут выбираться все строки, делаться операция логического умножения и потом только сравнение.

    Поле SET - это фактически еще одна таблица идентификатор-значение плюс таблица связи многие-ко-многим.
     
  3. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Да. По этим опциям надо будет искать.

    Вот это меня и интересовало. Судя по проведённому тесту, так и есть.

    Или BIGINT UNSIGNED
     
  4. AlexGousev

    AlexGousev Активный пользователь

    С нами с:
    25 мар 2006
    Сообщения:
    1.505
    Симпатии:
    0
    Адрес:
    Москва
    Н значит они сделали таблицу связи как число. Тоже вариант, но ограничение получается.
     
  5. armadillo

    armadillo Активный пользователь

    С нами с:
    6 апр 2007
    Сообщения:
    2.380
    Симпатии:
    0
    Адрес:
    Russia, Moscow
    пробовал хранить параметры в битовом поле. Проблема в том, что выборка идет в основном перебором.
    написал функцию на пхп и формирую условия для param in(".params(...
    так вроде быстро, но мне не нравится. на реальных базах склоняюсь к полю на каждый параметр.