Подтвердить что ты не робот

Как базы данных физически хранят данные в файловой системе?

Мне нужно знать, как данные из баз данных хранятся в файловой системе. Я уверен, что разные базы данных используют разные способы хранения данных, но я хочу знать, что такое общее правило (если оно есть), и что можно изменить в настройках конкретного БД.

  • Как хранится вся база данных? В одном большом файле или одном файле в таблице?
  • Что, если таблица огромна? Будет ли он разделен на несколько файлов?
  • Что такое типичный размер файла в этом случае?
4b9b3361

Ответ 1

Ответ на этот вопрос зависит как от зависимостей базы данных, так и от реализации. Вот несколько примеров того, как можно хранить данные:

  • Как отдельный файл для каждой базы данных. (Это значение по умолчанию для SQL Server.)
  • Использование отдельного диспетчера файловой системы, который может быть операционной системой. (MySQL имеет несколько опций, с именами, такими как InnoDB.)
  • Использование отдельных файлов для каждой таблицы. (Если мы рассмотрим доступ к базе данных.)
  • Как несколько физических файлов, распространяемых в нескольких файловых системах, но представленных как один "файл". (Например, HIVE, который использует параллельную файловую систему для хранения данных.)

Однако это настройки по умолчанию. Реальные базы данных обычно позволяют разделить данные между несколькими физическими устройствами. SQL Server и MySQL называют эти разделы. Oracle вызывает эти табличные пространства. Обычно они настраиваются знающими администраторами баз данных, которые понимают требования к производительности системы.

Тем не менее, последние вопросы легко ответить. Большинство баз данных дают вам возможность либо наращивать базы данных, сколько необходимо, либо предоставить базе данных фиксированный (или фиксированный максимальный) размер. Я не сталкивался с механизмом базы данных, который автоматически разбивал бы базовые данные на несколько файлов, хотя возможно, что более новые базы данных, ориентированные на столбцы (например, Vertica), делают что-то подобное.