|
Двоичные данные в базе и нагрузка на диск
|
|||
---|---|---|---|
#18+
Доброго дня форумчане ! Наблюдаю явление, которое не могу объяснить. Вариант № 1 Загружаю 600 строк в таблицу, одно из полей хранит двоичные данные. Всего двоичных данных 3.5 Гб Далее, читаю по очереди в 10 потоков, дисковая система ложится (100% акт. времени) и операция длится часами. Вариант № 2 Загружаю 600 строк в таблицу, одно из полей хранит ТОЛЬКО путь к файлу. Объем файлов тот же 3.5 Гб Далее, читаю по очереди в 10 потоков, а двоичные данные читаю напрямую с диска, дисковая система живая (10-50% акт. времени) и операция длится несколько минут. Т.е. между двумя вариантами разница лишь в источнике двоичных данных, в первом из базы, во втором с диска, в остальном алгоритмы одинаковы. Я отлично понимаю в каком месте правильно хранить двоичные данные, понимаю что хранение в СУБД это доп нагрузка, и это не правильно, но, скажите пожалуйста, откуда разница во времени в 100 раз ? Что делает postgres такое, что нагружает дисковую систему намертво ? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2017, 12:17 |
|
Двоичные данные в базе и нагрузка на диск
|
|||
---|---|---|---|
#18+
Ответ: причина в параметре checkpoint_segments, слушком маленький, так же следует обратить внимание на параметры связанные с ним. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2017, 16:47 |
|
|
start [/forum/topic.php?fid=53&msg=39408102&tid=1996700]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
39ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 327ms |
total: | 455ms |
0 / 0 |