Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
вернуть много и сразу
|
|||
|---|---|---|---|
|
#18+
Коллеги, такой вопрос. Заведую тут небольшим API. API предоставляет доступ к папкам и файлам. Точно так как в файловой системе. В данный момент API возвращает список файлов для конкретний папки с пейджингом. Для хождения по папкам этого достаточно. Клиенты захотели новый метод на API который вернет все файлы пользователя. Метод будет использоваться для поиска на клиенте (клиент закачает это один раз и будет обновлять по событиям). Технически это не сложно, запрос к базе, join 3-х табилиц. Но чета меня это напрягает. Количество файлов и папок может быть любым, к примеру пару сотен тысяч. Соответственно время выполнения запроса непредсказуемо. Размер пересылаемых данных тоже. Допустимо такое? Какие еще косяки могут вылезти? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2016, 17:17 |
|
||
|
вернуть много и сразу
|
|||
|---|---|---|---|
|
#18+
gri4, лучше рассчитывать, что если не запрещено, то может случиться. выгружать на клиента весьма здоровые данные нужно порциями - поискать примеры download big files - использовать упрощенно Response.Write и Response.Flush - сбросить на клиента. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2016, 17:33 |
|
||
|
вернуть много и сразу
|
|||
|---|---|---|---|
|
#18+
gri4, Все украдено до нас! Используй WebDav! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2016, 18:10 |
|
||
|
вернуть много и сразу
|
|||
|---|---|---|---|
|
#18+
monstrU, Плохо написал. Речь идет не о выгрузки контента файлов а о списке файлов. С выгрузкой на клиента понятно. Я хочу понять в целом, насколько тяжелые с точки зрения производительности запросы допустимы. Много маленьких против одного большого. Я могу ограничить выборку к примеру 500-ами записями и пусть клиент дергает API последовательно 100500 раз. Но это вроде как не еффективно. Можно наверное подогонать время исполнения запроса для максимального количества возвращаемых записей под какой-то SLA. Если нужно больше - следущий запрос. ЕвгенийВ, файлы с фолдерами тут для примера. Могут быть любые записи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2016, 18:53 |
|
||
|
вернуть много и сразу
|
|||
|---|---|---|---|
|
#18+
gri4, папку проиндексируй. windows index service. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2016, 19:08 |
|
||
|
вернуть много и сразу
|
|||
|---|---|---|---|
|
#18+
ЕвгенийВgri4, Все украдено до нас! Используй WebDav! +1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2016, 20:57 |
|
||
|
вернуть много и сразу
|
|||
|---|---|---|---|
|
#18+
Черт, криво написал изначально. Забудьте про файлы. Есть база в ней 3 таблицы. Нужно выбрать записи из этих 3-х таблиц по ключу в одной из таблиц. Всего записей в таблицах может быть десятки миллионов. Записей для одно ключа - пару сотен тысяч. Это текущее состояние. Оба числа могут быть и больше, пока трудно предсказать. В данный момент есть метод который возвращает постранично записи по ключу. 500 за раз. Хотят все записи сразу. Вот и вопрос - допустимо ли такое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2016, 09:52 |
|
||
|
вернуть много и сразу
|
|||
|---|---|---|---|
|
#18+
gri4, а чего не допустимо то если у тебя памяти хватить на серваке. мож сделать эт через вызов твоей текущей функции сколько то раз и складирование в память, а можешь сразу материлизовать. а можешь переделать на то чтоб держало соединение до бд и считывало по 1 запись, манипуляции и куда надо тебе прокидывание и так дальше. минус что соединение держится, зато память не так жрется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2016, 09:57 |
|
||
|
вернуть много и сразу
|
|||
|---|---|---|---|
|
#18+
Ну напрягает то что я не знаю сколько будет выполняться вызов метода. Непредсказуемость.. Спасибо за идею с промежуточным кешированием. База узкое место, апп серверов можно много поднять. Если большой запрос будет тормозить/мешать другим, буду разбивать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2016, 10:13 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=39321324&tid=1355731]: |
0ms |
get settings: |
5ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
23ms |
get topic data: |
5ms |
get forum data: |
1ms |
get page messages: |
26ms |
get tp. blocked users: |
1ms |
| others: | 256ms |
| total: | 329ms |

| 0 / 0 |
