Size: a a a

2019 December 23

Е

Евгений in pro.elixir
V
Вычисляемое значение position зависит от вставляемого points. Можно вычислять position не массовым пересчётом materialized view, а точечно только для обновляемых points.
Ну это первая же мысль которая приходит в голову. Но я так и не понял причем тут CQS. Ну и ладно. :)
источник

Е

Евгений in pro.elixir
atanych
нет живого вью, но это будет примерно так
SELECT * FROM records ORDER BY points DESC
То есть позиция таки зависит не только от поинтов конкретного пользователя, но и от поинтов других пользователей. Верно?
источник

a

atanych in pro.elixir
да
источник

V

V in pro.elixir
Евгений
Ну это первая же мысль которая приходит в голову. Но я так и не понял причем тут CQS. Ну и ладно. :)
Затем что commands кладутся в одну таблицу, а вычисленные значения для query - в другую.
источник

Е

Евгений in pro.elixir
V
Затем что commands кладутся в одну таблицу, а вычисленные значения для query - в другую.
Видимо в википедии иное определение CQS :)
источник

Е

Евгений in pro.elixir
Command-query separation (CQS) или command-query responsibility segregation (CQRS) — это принцип императивного программирования, изобретённый Бертраном Мейером во время работы над языком программирования Eiffel.

Принцип гласит, что метод должен быть либо командой, выполняющей какое-то действие, либо запросом, возвращающим данные, но не одновременно. Другими словами, задавание вопроса не должно менять ответ. Более формально, возвращать значение можно только чистым, не имеющим побочных эффектов методам.
источник

V

V in pro.elixir
А там написано, зачем он изобрёл это, для решения какой проблемы?
источник

Е

Евгений in pro.elixir
V
А там написано, зачем он изобрёл это, для решения какой проблемы?
Для контрактного программирования.
источник

Е

Евгений in pro.elixir
А просто создать таблицу с отсортированными по points записями и обновлять ее тоже 17 раз в секунду?
источник

Е

Евгений in pro.elixir
VIEW зачем, не понятно
источник

a

atanych in pro.elixir
Евгений
А просто создать таблицу с отсортированными по points записями и обновлять ее тоже 17 раз в секунду?
а чем это будет отличаться от MATER VIEW?
источник

Е

Евгений in pro.elixir
atanych
а чем это будет отличаться от MATER VIEW?
ну да, ничем :)
источник

Е

Евгений in pro.elixir
atanych
а чем это будет отличаться от MATER VIEW?
может считать позицию конкретного ползователя не во время вставки, а во время чтения этой позиции и кешировать ответ?
источник

AB

Alexander Beniaminov in pro.elixir
а много пользователей?
источник

a

atanych in pro.elixir
табличка - ~400k записей
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Почему нельзя при чтении использовать order по points?
источник

Е

Евгений in pro.elixir
Źmićer Rubinštejn
Почему нельзя при чтении использовать order по points?
ну вообще-то насколько я понял так и происходит в данный момент
источник

a

atanych in pro.elixir
Źmićer Rubinštejn
Почему нельзя при чтении использовать order по points?
можно
источник

Е

Евгений in pro.elixir
делают сортировку по поинтам и читают номер ряда
источник

a

atanych in pro.elixir
но хочется быстрее
источник