Size: a a a

2020 December 06

RK

Roman Kolosov in Laravel Pro
Правильнее было бы создать составной индекс
источник

ДТ

Дмитрий Тремасов... in Laravel Pro
MaZaHaKa 7
Ребят, как думаете, есть поле в табличке, в ней хранится битмаск, в котором может быть только 1 статус в одно время , ну там ещё может быть режим. Первый бит это режим, если выставлен в единичку, то значит «авто» если нет, то «руками». И 5 статусов разных но взаимоисключающих. По этой колбасе нужно искать, чтобы статус был одним из определённых, например 1,2,3.

Select * from payment_requests where ((bitmask & 2) != 0) or ((bitmask & 4) != 0) or ((bitmask & 8) != 0) and user_id in (153)

Насколько это хреновая идея искать по битмаске и как обьяснить товарищу лиду, что он ошибается в том что «битовая операция - это самая быстрая операция»?
здесь
источник

RK

Roman Kolosov in Laravel Pro
Если их больше одного, это как ни странно имеет смысл
источник

RK

Roman Kolosov in Laravel Pro
Тк расходуется физическое место на диске, но заиндексировать составной индекс с двумя булеанами это в теории сократить время запроса в х4
источник

RK

Roman Kolosov in Laravel Pro
Понятное дело индексировать одно булеан поле бред, и это наоборот будет дольше работать)))
источник

RK

Roman Kolosov in Laravel Pro
Хотя если честно и два и три бы не стал
источник

ДТ

Дмитрий Тремасов... in Laravel Pro
вот-вот
источник

ДТ

Дмитрий Тремасов... in Laravel Pro
не. вариант хранить кучу статусов в одном поле имеет смысл.
но в таком варианте Select * from payment_requests where ((bitmask & 2) != 0) or ((bitmask & 4) != 0) or ((bitmask & 8) != 0) and user_id in (153) я просто их не вижу
источник

ДТ

Дмитрий Тремасов... in Laravel Pro
и если мне расскажут в чем бонусы я буду рад
источник

RK

Roman Kolosov in Laravel Pro
Стоп
источник

RK

Roman Kolosov in Laravel Pro
Чего)))
источник

RK

Roman Kolosov in Laravel Pro
А зачем там три запроса?)
источник

ДТ

Дмитрий Тремасов... in Laravel Pro
Я хз
источник

RK

Roman Kolosov in Laravel Pro
Побитово сравнить можно один раз
источник

RK

Roman Kolosov in Laravel Pro
!= 000 ))))
источник

RK

Roman Kolosov in Laravel Pro
Синтаксис не такой, но суть в этом
источник

ДТ

Дмитрий Тремасов... in Laravel Pro
Да даже с одним сравнением в чем выгода?
источник

RK

Roman Kolosov in Laravel Pro
Начнем с того что хранить битмаски в реляционной СУБД противоречит первым трем нормальным формам))) ну хз, это надо на деле тестировать
источник

ДТ

Дмитрий Тремасов... in Laravel Pro
смутно представляю тут можно что тестировать
источник

АГ

Алексей Гевондян... in Laravel Pro
ключевой вопрос - сколько строк в таблице
источник