Size: a a a

2020 September 21

SP

Sergey Pashkevich in Laravel Pro
Nex Otaku
Смотри. Пишешь запрос. Указываешь дату начиная с которой тебя интересуют данные. Прописываешь конвертацию и группировку.

1. Сначала вычисляется минимальная дата. По ней в WHERE будут отсекаться все интересующие тебя записи.

2. Все строки по этому условию загрузятся с диска в память.

3. По загруженным в память строкам сконвертится дата в нужную time zone.

4. После этого будет группировка по GROUP BY

5. Сгруппированные данные отправляются клиенту.

Здесь нет ни лишних, ни "медленных" действий.
я понял твою мысль и да, ты прав. т.е. мы отсечём основную часть с помощью where и операция конвертации будет происходить над ограниченным количеством записейю

но что если в where будет очень большой период .. то тогда надо пагинация чтобы меньше было
источник

SP

Sergey Pashkevich in Laravel Pro
Nex Otaku
Индекс у тебя и так будет использован, так как поиск записей будет по "сырому" значению TIMESTAMP.
вот на этом поле у меня нету индекса, всё думал добавить но не добавил )
источник

SP

Sergey Pashkevich in Laravel Pro
@nex_otaku спасибо за хороший ответ и за пояснение, теперь буду уверенней в реализации, а то всё не решался делать этого)

@denisk666 спасибо за диалог, и за проблему 2038 не слышал про такую, но теперь буду знать )
источник

NO

Nex Otaku in Laravel Pro
Sergey Pashkevich
я понял твою мысль и да, ты прав. т.е. мы отсечём основную часть с помощью where и операция конвертации будет происходить над ограниченным количеством записейю

но что если в where будет очень большой период .. то тогда надо пагинация чтобы меньше было
Если у тебя есть проблема с большим количеством данных, да действительно постраничную разбивку с группировкой будет сложно сделать.

Но в таких случаях решается по-другому. У тебя есть необходимость просмотра агрегированных данных, какой-то статистики, сводной инфы. Несколько вариантов:

1. Вынести данные в отдельную таблицу в которой будут уже сгруппированные значения. Её будет очень просто разбивать на страницы, читать из неё будет моментально.

2. Вынести данные в специализированное хранилище, которое спроектировано для статистики — ClickHouse или аналоги.
источник

SP

Sergey Pashkevich in Laravel Pro
Nex Otaku
Если у тебя есть проблема с большим количеством данных, да действительно постраничную разбивку с группировкой будет сложно сделать.

Но в таких случаях решается по-другому. У тебя есть необходимость просмотра агрегированных данных, какой-то статистики, сводной инфы. Несколько вариантов:

1. Вынести данные в отдельную таблицу в которой будут уже сгруппированные значения. Её будет очень просто разбивать на страницы, читать из неё будет моментально.

2. Вынести данные в специализированное хранилище, которое спроектировано для статистики — ClickHouse или аналоги.
опять ты помог понять, что пагинация особо не решит, так как операции limit и offset выполняются уже после всех обработок и операций
источник

SP

Sergey Pashkevich in Laravel Pro
Nex Otaku
Если у тебя есть проблема с большим количеством данных, да действительно постраничную разбивку с группировкой будет сложно сделать.

Но в таких случаях решается по-другому. У тебя есть необходимость просмотра агрегированных данных, какой-то статистики, сводной инфы. Несколько вариантов:

1. Вынести данные в отдельную таблицу в которой будут уже сгруппированные значения. Её будет очень просто разбивать на страницы, читать из неё будет моментально.

2. Вынести данные в специализированное хранилище, которое спроектировано для статистики — ClickHouse или аналоги.
1 - это надо будет поддерживать уже несколько таблиц, и после каждой операции в основной таблице обновлять дополнительные
2 - изучу, спасибо
источник

DZ

Daniil Zobov in Laravel Pro
Есть у кого решение по сортировке по полю в отношении кроме прямого join?
источник

SS

S S in Laravel Pro
Как правильно реализовать sanctum для spa приложений? Сейчас чтобы получить csrf токен фронт делает запрос на его получение, и дальше уже пользуется роутами. Что то мне подсказывает что так делать неправильно, потому что любой может тупо сделать запрос на получение csrf токена
источник

DZ

Daniil Zobov in Laravel Pro
S S
Как правильно реализовать sanctum для spa приложений? Сейчас чтобы получить csrf токен фронт делает запрос на его получение, и дальше уже пользуется роутами. Что то мне подсказывает что так делать неправильно, потому что любой может тупо сделать запрос на получение csrf токена
Отдавать главную страницу spa с токеном где-то
источник

DZ

Daniil Zobov in Laravel Pro
И забирать его оттуда в js
источник

DZ

Daniil Zobov in Laravel Pro
Запрос на токен просто добавит +1 шаг любому парсеру
источник

SS

S S in Laravel Pro
Daniil Zobov
Отдавать главную страницу spa с токеном где-то
получается надо смешивать опять фронт и бэк
источник

DZ

Daniil Zobov in Laravel Pro
S S
получается надо смешивать опять фронт и бэк
Можно извернуться и сделать генерацию токена на бэке и на фронте по какому-то алгоритму, который подвергнуть обфускации. Это усложнит этот шаг
источник

SS

S S in Laravel Pro
Daniil Zobov
Можно извернуться и сделать генерацию токена на бэке и на фронте по какому-то алгоритму, который подвергнуть обфускации. Это усложнит этот шаг
спасибо
источник

M

Mikhail in Laravel Pro
Daniil Zobov
Можно извернуться и сделать генерацию токена на бэке и на фронте по какому-то алгоритму, который подвергнуть обфускации. Это усложнит этот шаг
кастылиииии
источник

DZ

Daniil Zobov in Laravel Pro
Mikhail
кастылиииии
а как без этого в нашей работе)
источник

M

Mikhail in Laravel Pro
никак, но не на столько же
источник

LA

Lipe App in Laravel Pro
Че происходит ?
источник

LA

Lipe App in Laravel Pro
#СПАМ
источник

M

Mikhail in Laravel Pro
боты
источник