SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 31.01.2014 15:41:21

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

myisam_use_mmap

http://www.mysqlperformanceblog.com/200 … eature-51/

Насколько я понял при данной опции доступ к данным MyISAM (т.е. файлам .myd) идет непосредственно через кэш операционной системы с помощью сишной функции memcpy(), минуя системный вызов.

1. Выигрыш только за счет того, что системный вызов дороже?
2. За счет чего выигрыш при update/delete/insert? Это ведь требует изменения данных на диске.

Неактивен

 

#2 31.01.2014 19:09:44

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: myisam_use_mmap

Системный вызов читает файл с диска или из кэша операционной системы. Но последний не всегда эффективен. mmap - отображение файла в адресное пространство памяти. При этом оно отображается в виртуальную память, а виртуальная память отображается на реальную постранично по необходимости. Кэш ОС при этом не используется.
Утверждается, что этот механизм работает эффективнее. Системный вызов использует такой же механизм, но он не знает, что файл - таблица БД, поэтому из-за универсальности (и из-за возможности выпадания нужных страниц из кэша) может быть менее эффективен.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson