Size: a a a

2020 May 06

AS

Andrew Sparks in Laravel Pro
App\User::count()
источник

r

rip your face in Laravel Pro
Andrew Sparks
Привет всем, кто-нибудь может подсказать как делать count() на большом кол-ве записей и при этом не нагружать проц на 30%? Сейчас кеш на минуту стоит, но хотелось бы всё таки реалтайм
https://github.com/GeneaLabs/laravel-model-caching в этом пакете кэш автоматически обновляется при изменении модели
источник

r

rip your face in Laravel Pro
Можно хранить всё время при этом он будет актуальным
источник

r

rip your face in Laravel Pro
имею ввиду кэш
источник

V

Vadim in Laravel Pro
Andrew Sparks
App\User::count()
И что, много записей?
источник

AS

Andrew Sparks in Laravel Pro
да вроде не особо, 3 миллиона
источник

М

Мирас in Laravel Pro
может отдельно вести счетчик?
источник

AS

Andrew Sparks in Laravel Pro
Да, думал об этом, но вдруг какой-нибудь более красивый способ есть
источник

V

Vadim in Laravel Pro
Andrew Sparks
Да, думал об этом, но вдруг какой-нибудь более красивый способ есть
raw sql
источник

AS

Andrew Sparks in Laravel Pro
Vadim
raw sql
а чем он поможет?
источник

AS

Andrew Sparks in Laravel Pro
напрямую COUNT(*) точно также грузит, проблема у мускула
источник

AS

Andrew Sparks in Laravel Pro
спасибо
источник

AS

Alek Sanders in Laravel Pro
А какие пакеты кто использует для создания sitemap?
источник

r

rip your face in Laravel Pro
Andrew Sparks
спасибо
да это в вашем случае наверное накладно будет. Записей то много.
источник

AS

Andrew Sparks in Laravel Pro
Alek Sanders
А какие пакеты кто использует для создания sitemap?
перепробовал около 5, в итоге забил и сам сделал
источник

r

rip your face in Laravel Pro
Хотя я не проверял насколько это всё влияет на производительность. У меня есть один сайт где используется этот пакет. Там прилично данных но не настолько. Поэтому без понятия будет ли какой-то профит от того что в redis запихнуть все эти данные и уже от туда получить count
источник

GE

Grisha Egorov in Laravel Pro
Andrew Sparks
напрямую COUNT(*) точно также грузит, проблема у мускула
У тебя скорее всего в таблице с юзерами createdAt есть. Как вариант делай селект последней записи и если время не изменилось с последней проверки бери из кэша count, если изменилось считай базой.
источник

AS

Andrew Sparks in Laravel Pro
Grisha Egorov
У тебя скорее всего в таблице с юзерами createdAt есть. Как вариант делай селект последней записи и если время не изменилось с последней проверки бери из кэша count, если изменилось считай базой.
спасибо
источник

GE

Grisha Egorov in Laravel Pro
Но это только если у тебя там условий никаких нет в запросе
источник

GE

Grisha Egorov in Laravel Pro
Если модераторы вертят активностью юзеров, кэш инвалидироаать намного сложнее
источник