|
Бредовая идея или все реально?
|
|||
---|---|---|---|
#18+
Всем привет. Есть сайт, в качестве бд используется постгрес. И есть в бд большая таблица , сейчас 700 000 тыс записей, в перспективе больше 1 млн. Идея: клиенты нажимают скачать, при этом сервер делает запросы к постгресу типа "COPY ( SELECT * from bigTable ) to data.txt" и после выполнения отдает клиенту на скачку data.txt. Вместо SELECT * from bigTable на самом деле сложный запрос с множеством соединений большой таблицы с мелкими, но суть не меняется думаю. В результирующем файл строк столько же сколько в таблице или меньше в зависимости от настроек клиента. Вопросы: 1) бредовая ли идея сама по себе, или реально заделать такое 2) какая должна быть конфигурация сервака, если скажем куча клиентов одновременно начнут скачивание. От чего отталкиваться? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.05.2017, 18:10 |
|
Бредовая идея или все реально?
|
|||
---|---|---|---|
#18+
deemaa, Делайте раз в <какое-то время> дампы стандартными средставми или скриптами (по крону) и складывайте в доступное “им” место. Хотя идея давать “им” доступ к данным из продукции не совсем секюрна... ... |
|||
:
Нравится:
Не нравится:
|
|||
09.05.2017, 18:20 |
|
Бредовая идея или все реально?
|
|||
---|---|---|---|
#18+
deemaaВсем привет. Есть сайт, в качестве бд используется постгрес. И есть в бд большая таблица , сейчас 700 000 тыс записей, в перспективе больше 1 млн. Идея: клиенты нажимают скачать, при этом сервер делает запросы к постгресу типа "COPY ( SELECT * from bigTable ) to data.txt" и после выполнения отдает клиенту на скачку data.txt. Вместо SELECT * from bigTable на самом деле сложный запрос с множеством соединений большой таблицы с мелкими, но суть не меняется думаю. В результирующем файл строк столько же сколько в таблице или меньше в зависимости от настроек клиента. Вопросы: 1) бредовая ли идея сама по себе, или реально заделать такое 2) какая должна быть конфигурация сервака, если скажем куча клиентов одновременно начнут скачивание. От чего отталкиваться? Если для каждого клиента запросы уникальны и не меняются часто, то может быть воспользоваться материальными представлениями? Которые будут обновляться по какому-нибудь правилу/расписанию. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2017, 07:43 |
|
Бредовая идея или все реально?
|
|||
---|---|---|---|
#18+
deemaaсуть не меняетсяК процессу получения данных добавится запись и чтение диска на сервере. И в чем же суть этих действий? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2017, 09:33 |
|
Бредовая идея или все реально?
|
|||
---|---|---|---|
#18+
Ответы: 1) Реально. 2) Отталкиваться от кривизны рук разработчика сайта. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2017, 13:33 |
|
Бредовая идея или все реально?
|
|||
---|---|---|---|
#18+
Точно, сделать хранимую вьюху. По одному клику делать COPY + 7z архив этого файла. Потом вывешивать список доступных для скачивания файлов по состоянию за такое-то время. Или каждый запрос от клиента имеет разные параметры и результат зависит от параметров? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2017, 21:55 |
|
Бредовая идея или все реально?
|
|||
---|---|---|---|
#18+
deemaa, не нравится "to data.txt". Этот файл будет записан пользователем postgres. Для того чтобы прочитать и отдать содержимое этого файла ваше приложение должно иметь права на чтение файлов postgres, должно знать путь к директории постгреса. А кто старые файлы будет подчищать, для этого надо иметь права НА ЗАПИСЬ постгресовых файлов? Поэтому правильнее делать "to stdout", и сохранять данные в файл из приложения. Также, если данные надо отдать однократно, то можно вообще не сохранять в файл, а сразу отдавать. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2017, 09:39 |
|
Бредовая идея или все реально?
|
|||
---|---|---|---|
#18+
LeXa NalBatесли данные надо отдать однократно, то можно вообще не сохранять в файл, а сразу отдавать. Насколько я понял, файл предполагается довольно большим, а схема "сразу отдавать" несовместима с докачкой при обрыве. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2017, 13:35 |
|
|
start [/forum/topic.php?fid=53&fpage=74&tid=1996521]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
50ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 157ms |
0 / 0 |