Лакируйте управление памятью

Вообще говоря, существует стоимость для подготовки каждого запроса и стоимости для получения данных. Для небольших наборов данных выполнение ВЫБИРАЕТ в цикле, не то, что плохо, но если Вы делаете ВЫБОР на таблице с 1 000 строк, затем для каждой из тех строк, делающих другой ВЫБОР на различной таблице с 1 000 строк, различие будет очень заметным, даже если циклично выполненные выборы будут выполняться от запроса, подготовленного заранее.

Даже если бы стоимость подготовки каждого запроса в цикле является нулем, возможно, что элементы, к которым ПРИСОЕДИНЯЮТСЯ, уменьшили бы общий размер полученных данных. Например, при присоединении к таблице с 1000 строками против таблицы только с одной строкой соответствия версия СОЕДИНЕНИЯ запроса возвратила бы одну строку, в то время как отдельные ВЫБОРЫ возвратят 1 000 строк из первой таблицы с циклом, производящим 999 пустых множеств и 1 строку.

Если Вы запрашиваете один определенный объект от каждой таблицы, а не цикличного выполнения по ряду строк, то различие между одним "большим" запросом и 4 небольшими запросами является, вероятно, крохотным. Как voretaq7 сказал, заставив postgresql ОБЪЯСНЯТЬ, что сделает каждый запрос и сколько времени он возьмет, чтобы сделать это, имел бы большое значение для выяснения точно, что произойдет.

-1
задан 28 June 2013 в 13:50
1 ответ

Varnish не уменьшит объем выделенной ему памяти - но это виртуальная память. То, как это обрабатывается, будет зависеть от ОС и того, как она настроена.

В вашем примере, предполагая, что она работала в Linux, это будет зависеть от того, сколько физической памяти (ОЗУ и своп) выделено (что будет меньше чем или равным объему выделенной виртуальной памяти.Поскольку приложения часто запрашивают больше памяти, чем им нужно, конфигурация по умолчанию в дистрибутивах mst заключается в превышении объема памяти на 50%. Если избыточное выделение позволяет второму приложению выделить память, тогда Он запустится.Когда использование физической памяти превысит некоторый порог, убийца OOM запустит процесс завершения запуска.

0
ответ дан 5 December 2019 в 20:46

Теги

Похожие вопросы