Влияние размера кэша   

   
Влияние размера кэша

Вы можете спросить, почему размер кэша так важен. Во-первых, представьте, что разделяемый буфер-кэш сервера PostgreSQL достаточно большой, чтобы сохранить в себе всю таблицу. Повторяемые следующие один за другим сканирования таблицы не потребуют доступа к диску, потому что все данные уже в кэше. Теперь, представьте, что кэш - это один блок, меньший, чем таблица. Последовательное сканирование загрузит все блоки таблицы в кэш до самой последней. Когда понадобится определенный блок, то старый блок убирается, который в данном случае является первым блоком таблицы. Когда будет происходить следующее последовательное сканирование, первого блока в кэше уже нет. И для того, чтоб его загрузить, надо удалить самый старый блок, который в этом случае сейчас второй блок в таблице. Это вытеснение следующего требуемого блока продолжается до конца таблицы. Это крайний случай, но можно увидеть, что уменьшение на один блок понижает эффективность кэша со 100% до 10%. Это говорит о том, что если найти правильный размер кэша, то это может радикально отразится на выполнении.



Оглавление                                                                                                Читать дальше...