Какую файловую систему использует MySQL? - PullRequest
0 голосов
/ 25 ноября 2018

Использует ли MySQL fread, read, mmap или другую файловую систему при сохранении данных базы данных на диск в ОС Linux?Или MySQL делает тест, чтобы увидеть, какой из них использовать?Это не относится к сохранению данных конфигурации.Я заинтересован в фактической базе данных, предпочтительно InnoDB.

Спасибо за любую помощь.

Редактировать: Чтобы быть более конкретным, меня интересует исходный код c / c ++ в MySQL, которыйвыполняет фактические вызовы, которые сохраняют данные в базу данных InnoDB.Возможные варианты: fread, read, mmap и др.

Ответы [ 2 ]

0 голосов
/ 26 ноября 2018

В системах Linux будут работать все файловые системы POSIX.fread - это конструкция libc, которая преобразуется в базовые системные вызовы, такие как read, mmap, write и т. д.

Операции чтения, mmap, записи реализованы на уровне VFS (виртуальной файловой системы) Linux.до того, как эти сопоставляются с конкретными операциями в коде файловой системы.Таким образом, любая файловая система POSIX будет работать с MySQL.

Единственный тест файловой системы, который я видел в коде MySQL, это системный вызов fallocate, который реализован не во всех файловых системах (особенно когда он был впервые добавлен, еговероятно, значительно доступны сейчас).Существует обходной путь реализации, когда fallocate недоступен.

0 голосов
/ 25 ноября 2018

Какую файловую систему использует MySQL?

Код метода доступа MySQL (InnoDB, MyISAM, AriaDB и остальные) использует собственную файловую систему тома хоста на операционной системе хоста.система.NTFS в Windows, ext4fs в системах U ** X и т. Д. Порты соответствующей платформы используют различные методы ввода-вывода, включая отображение памяти, разброс / сбор и обычные системные вызовы чтения и записи, а также интегрируются с функциями ведения журналов файловых систем.,Точные используемые методы зависят от типа запроса, метода доступа и состояния кэшей.

Совет для профессионалов: Не беспокойтесь по соображениям производительности, если ваш сервер не работаетна старой 32-битной машине 486, которую вы нашли в хранилище (или если у вас нет миллионов пользователей и миллиардов строк данных).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...