Выборка последих сообщений

fixxxer

К.О.
Партнер клуба
да можно и без юнионов нахачить :), типа select max(case read when 0 then SOME_DATE_FAR_IN_THE_FUTURE else date end)

правда чтобы это эффективно работало, придется сделать persistent virtual column такой и индекс туда (мы ж про mysql тут?)
 

Jake Badland

Новичок
Да, мускул)
Я скомбинировал советы.
Завтра могу выложить результат.

Изначально была проблема в вышеописаных задачах.
Оказалось, что еще надо получать данные по юзеру (не важно я это или мне)
Но вот ща накатал запросец благодаря:
Antson
kkn1960
Спасибо.

Данные по конкретному юзеру я уже получу другим запросом. Благо метод уже готов))

TO:fixxxer
У нас на данный момент 35К+ юзеров. Мне досталась база без внешних индексов, мессаги я еще не перетащил со старых баз. Их там под 7 лямчигов))))
Да и типы таблиц такие, что хер знает, то исамы, то инно.
 

Jake Badland

Новичок
да можно и без юнионов нахачить :), типа select max(case read when 0 then SOME_DATE_FAR_IN_THE_FUTURE else date end)

правда чтобы это эффективно работало, придется сделать persistent virtual column такой и индекс туда (мы ж про mysql тут?)
"persistent virtual column"
К стыду своему, даже не знаю, что это.
Обязуюсь почитать)
 

fixxxer

К.О.
Партнер клуба
Загугли по этим словам и увидишь, что это такое в MariaDB. В mysql 5.7 тоже такие сделали, но назвали generated columns и синтаксис сделали чуточку другой, потому что у того, что в mariadb, они обнаружили фатальный недостаток.

В базах данных, которые более базы данных, можно делать индексы по выражениям. В MariaDB/Mysql 5.7 же через виртуальные столбцы эту фичу взрослых СУБД можно сэмулировать.

Про myisam советую вообще забыть как про страшный сон. Ну логи какие-нибудь (которые никому не нужны) туда разве что писать можно.
 

antson

Новичок
Партнер клуба
если у тебя 7 млн месаг и всего 35 тыс юзеров. Напрашивается введение в таблицу пользователей дополнительных полей : ид последнего непрочитанного, ид последнего прочитанного.
А на таблицу месаг повесить тригеры их обновляющие.
 

fixxxer

К.О.
Партнер клуба
Ох, денормализация - штука такая, ее применяют либо мастера, либо идиоты :)
Без крайней необходимости не стоит. Только когда все остальные варианты не дают достаточной производительности.
 
Сверху