(Я уже обсуждал длину диска в вашем подобном вопросе. Я расскажу об ОЗУ здесь.)
Возможно, два десятилетия назад более половины процессоров перешли на "виртуальные" адреса, отличные от "физические адресаЧтобы достичь этого, специалисты по аппаратному обеспечению реализовали механизм «перевода», который отображал 32-битный (или 64-битный) виртуальный адрес, который программа использует в физический адрес для доступа к ОЗУ.Это было сделано на относительно низком уровне оборудования.Наряду с аппаратным обеспечением появилась обработка исключения, когда физический адрес был перенесен на диск или еще не был выделен для пользовательской программы.
Производители в основном остановились на размере страницы 4 КБ для точности перевода.То есть младшие 12 бит (2 ^ 12 = 4K) поступают через перевод без изменений;старшие биты отображаются (через таблицу поиска на кристалле, поддерживаемую массивом в ОЗУ), от виртуального к физическому.Это делается для каждого доступа к памяти (за исключением, может быть, во время загрузки).
С этим механизмом пользовательские программы могут полностью не обращать внимания на то, где 4 КБ страницы находятся в ОЗУ, а также на то, являются ли ониразбросаны или нет.
Итог: забудьте об изображении в памяти.Фрагментация на самом деле не проблема.
С другой стороны, обмен может быть проблемой.Я думаю, что MySQL и InnoDB разработаны с предположением, что все в оперативной памяти остается в оперативной памяти.Обратите внимание на то, как они прилагают усилия для кэширования блоков данных, блоков индекса, определений таблиц и т. Д. Итак, не настраивайте MySQL так, чтобы система должна была поменяться.