Три слоя кэша между выбором и диском
Три слоя кэша между выбором и диском Это исследование углубляется в три, изучая его значение и потенциальное влияние. — ОС Mewayz Business.
Mewayz Team
Editorial Team
Когда ваше приложение запускает оператор SELECT, этот запрос почти никогда не затрагивает вращающийся диск или даже необработанную флэш-память — он проходит через три отдельных уровня кэша, которые молча определяют, поступает ли ваш ответ через микросекунды или миллисекунды. Понимание этих слоев — это разница между бизнес-платформой, которая легко масштабируется, и той, которая не справляется с реальной нагрузкой.
Что происходит в тот момент, когда запрос SELECT покидает ваше приложение?
В тот момент, когда ваше приложение отправляет запрос SELECT, оно попадает в конвейер, который большинство разработчиков никогда не проверяет. Ядро базы данных перехватывает запрос до того, как произойдет какой-либо ввод-вывод, анализируя SQL во внутренний план выполнения и немедленно обращаясь к своей первой линии защиты: кэшу результатов запроса. Если идентичный запрос с идентичными параметрами был выполнен недавно, движок может вернуть кэшированный набор результатов, не затрагивая ни одной страницы данных. Иногда это называют кешем запросов или кешем результатов, и в рабочих нагрузках с большим количеством операций чтения и низким уровнем записи — таких как аналитические панели и модули отчетности — он может полностью исключить подавляющее большинство операций чтения с диска.
Важным моментом здесь является то, что кэш запросов очень чувствителен к мутациям данных. Любой INSERT, UPDATE или DELETE в базовой таблице делает недействительными соответствующие кэшированные результаты. Вот почему транзакционные системы с большим объемом записи часто полностью отключают кэш запросов и вместо этого полагаются на более глубокие уровни.
Что такое буферный пул и почему он важнее, чем вы думаете?
Второй уровень кэша — и, возможно, самый важный в производственных системах — это пул буферов (называемый общим буфером в PostgreSQL, пулом буферов InnoDB в MySQL). Это область оперативной памяти, которую ядро базы данных использует для хранения страниц данных, к которым недавно обращались. Если запрос не может быть обработан из кэша результатов, механизм проверяет, находятся ли необходимые страницы данных уже в буферном пуле, прежде чем выполнять какое-либо чтение с диска.
Буферный пул работает по принципу временной и пространственной локальности: доступ к данным, к которым недавно осуществлялся доступ, скорее всего, будет осуществлен снова, а к данным, хранящимся рядом с данными, к которым осуществляется доступ, вероятно, скоро будет получен доступ. Администраторы баз данных настраивают размер буферного пула как одно из наиболее важных конфигурационных решений, которые они принимают. Слишком маленький пул буферов приводит к постоянному вытеснению страниц, создавая явление, называемое перегрузкой, когда система тратит больше времени на устранение промахов в кэше, чем на выполнение запросов.
💡 ЗНАЕТЕ ЛИ ВЫ?
Mewayz заменяет 8+ бизнес-инструментов в одной платформе
CRM · Выставление счетов · HR · Проекты · Бронирование · eCommerce · POS · Аналитика. Бесплатный тариф доступен навсегда.
Начать бесплатно →Ключевой вывод: в большинстве рабочих нагрузок OLTP пул буферов хорошего размера означает, что 95–99% всех операций чтения данных выполняются из оперативной памяти. Рабочий набор — подмножество ваших данных, к которым часто обращаются запросы — часто намного меньше общего размера базы данных. Выбор размера пула буферов в соответствии с вашим рабочим набором, а не всем набором данных, — это единственное действие по настройке, которое вы можете предпринять с максимальной отдачей.
Как кэш операционной системы заполняет пробел между оперативной памятью и диском?
Даже если собственный пул буферов базы данных отсутствует, запрос еще не предназначен для настоящего чтения с диска. Операционная система поддерживает страничный кеш (также называемый кешем файловой системы), область оперативной памяти, управляемой ядром, которая буферизует операции чтения и записи для блокировки устройств. Когда ядро базы данных запрашивает страницу, отсутствующую в его буферном пуле, ядро ОС проверяет свой собственный страничный кэш перед выдачей физической команды ввода-вывода контроллеру хранилища.
Этот третий уровень по большей части невидим для разработчиков приложений, но он чрезвычайно важен в системах, где буферный пул базы данных недостаточно обеспечен. Кэш страниц ОС используется всеми процессами, поэтому он конкурирует с вашим сервером приложений, веб-сервером и любым другим программным обеспечением, работающим на том же хосте. На выделенных серверах баз данных эта конкуренция минимальна, а кэш ОС обеспечивает значимый буфер второго шанса. На общих хостах или контейнерах с жесткими ограничениями памяти кэш ОС часто слишком мал, чтобы помочь.
Какой уровень кэша на практике обеспечивает наибольший выигрыш в производительности?
В реальных производственных системах буферный пул domi
Streamline Your Business with Mewayz
Mewayz brings 207 business modules into one platform — CRM, invoicing, project management, and more. Join 138,000+ users who simplified their workflow.
Start Free Today →Related Posts
Попробуйте Mewayz бесплатно
Единая платформа для CRM, выставления счетов, проектов, HR и многого другого. Банковская карта не требуется.
Связанное руководство
Руководство по управлению HR →Эффективно управляйте своей командой: профили сотрудников, управление отпусками, расчет зарплаты и оценка эффективности.
Получите больше подобных статей
Еженедельные бизнес-советы и обновления продуктов. Бесплатно навсегда.
Вы подписаны!
Начните управлять своим бизнесом умнее уже сегодня.
Присоединяйтесь к 30,000+ компаниям. Бесплатный тариф навсегда · Без кредитной карты.
Готовы применить это на практике?
Присоединяйтесь к 30,000+ компаниям, использующим Mewayz. Бесплатный тариф навсегда — кредитная карта не требуется.
Начать бесплатный пробный период →Похожие статьи
Hacker News
GrapheneOS отказывается соблюдать новые законы о проверке операционной системы
Mar 22, 2026
Hacker News
Palantir расширяет свое влияние на британское государство, получая доступ к конфиденциальным данным FCA
Mar 22, 2026
Hacker News
Векторизация проектов Verilog и ее влияние на верификацию и синтез
Mar 22, 2026
Hacker News
Show HN: файл Markdown, который превращает вашего ИИ-агента в автономного исследователя.
Mar 22, 2026
Hacker News
Персональные компьютеры (2022)
Mar 22, 2026
Hacker News
Лесные пожары в Небраске заставили владельцев ранчо искать корм
Mar 22, 2026
Готовы действовать?
Начните ваш бесплатный пробный период Mewayz сегодня
Бизнес-платформа все-в-одном. Кредитная карта не требуется.
Начать бесплатно →14-дневный бесплатный пробный период · Без кредитной карты · Можно отменить в любой момент