Подсистемы хранения в MySQL

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

MySQL хранит каждую базу данных (также именуемую схемой) как подкаталог сво­его каталога данных в файловой системе. Когда вы создаете таблицу, MySQL сохра­няет ее определение в файле с расширением .frm и именем, совпадающим с именем таблицы. Таким образом, при создании таблицы с именем MyTable ее определение сохраняется в файле MyTable.frm. Поскольку MySQL использует файловую систему для хранения имен баз данных и определений таблиц, чувствительность к регистру символов зависит от платформы. В MySQL для Windows имена таблиц и баз данных нечувствительны к регистру, а в операционных системах семейства UNIX — чувстви­тельны. Каждая подсистема хранения по-разному записывает табличные данные и индексы, но сервер сам обрабатывает определение таблицы.

Для получения информации о таблицах можете использовать команду SHOW TABLE STATUS (или, начиная с версии MySQL 5.0, сделать запрос таблиц INFORMATION- SCHEMA). Например, чтобы получить информацию о таблице user, содержащейся в базе данных mysql, выполните следующую команду:

mysql> SHOW TABLE STATUS LIKE ’user’ \G
*************************** 2. row ***************************
Name: user
Engine: MyISAM Row_format: Dynamic
Rows: 6
Avg_row_length: 59 Data_length: 356
Max_data_length: 4294967295 Index_length: 2048
Data_free: 0 Auto_increment: NULL
Create_time: 2002-01-24 18:07:17 Update.time: 2002-01-24 21:56:29 Check_time: NULL
Collation: utf8_bin Checksum: NULL
Create_options:
Comment: Users and global privileges 1 row in set (0.00 sec)

Как видите, это таблица типа MyISAM. Команда выдала также много дополнитель­ной информации и статистики. Давайте вкратце рассмотрим, что означает каждая строка:

  • Name — имя таблицы;
  • Engine — подсистема хранения. В старых версиях MySQL этот столбец назывался Туре, а не Engine;
  • Row_format — формат строки. Для таблицы MyISAM он может иметь значение Dynamic, Fixed или Compressed. Длина динамических строк может меняться, поскольку они содержат поля переменной длины типа VARCHAR или BLOB. Фиксиро­ванные строки имеют один и тот же размер и состоят из полей постоянной длины, таких как CHAR и INTEGER. Сжатые строки существуют только в сжатых таблицах (см. далее подраздел «Сжатые таблицы MyISAM»);
  • Rows — количество строк в таблице. Для таблиц MyISAM и большинства других под­систем хранения это число всегда точное, для InnoDB — обычно приблизительное;
  • Avg_row_length — количество байтов (в среднем), содержащееся в каждой строке;
  • Data_length — объем данных (в байтах) во всей таблице;
  • Max_data_length — максимальный объем данных, который может хранить эта таблица (зависит от подсистемы хранения);
  • Index_length — объем дискового пространства, занятый индексными данными;
  • Data_frее — для таблицы MyISAM показывает объем выделенного пространства, которое в данный момент не используется. Это пространство служит для хранения ранее удаленных строк и может быть задействовано в будущем при выполнении команд INSERT;
  • Auto_increment — следующее значение атрибута AUTO_INCREMENT;
  • Create_time — момент создания таблицы;
  • Update_time — время последнего изменения таблицы;
  • Check_time — время последней проверки таблицы командой CHECK TABLE или утилитой myisamchk;
  • Collation — устанавливаемая по умолчанию кодировка и схема упорядочения для символьных столбцов в этой таблице;
  • Checksum — текущая контрольная сумма содержимого всей таблицы, если ее мож­но определить;
  • Create_options — любые другие параметры, которые были указаны при создании таблицы;
  • Comment — это поле содержит различную дополнительную информацию. Для таблиц MyISAM в нем хранятся комментарии, добавленные при их создании. Если табли­ца использует подсистему хранения InnoDB, здесь указан объем свободного места в табличном пространстве. Для представлений комментарий содержит текст VIEW.

Самыми популярными встроенными системами хранения в MySQL являются InnoDB и MyISAM. Менее популярными и востребованными являются Archive, Blackhole, CSV, Federated, Memory, Merge и NDB Cluster

Вас заинтересует / Intresting for you:

Модель развития базы данных My...
Модель развития базы данных My... 1410 просмотров Ирина Светлова Thu, 10 Jan 2019, 12:29:03
Подсистемы (движки) хранения в...
Подсистемы (движки) хранения в... 4589 просмотров Дэйзи ак-Макарова Wed, 04 Aug 2021, 18:11:43
MySQL: подсистемы хранения сто...
MySQL: подсистемы хранения сто... 1347 просмотров Ирина Светлова Sat, 07 Aug 2021, 10:28:39
MySQL: специфические движки дл...
MySQL: специфические движки дл... 1938 просмотров Ирина Светлова Mon, 07 Jan 2019, 12:57:57
Войдите чтобы комментировать

apv аватар
apv ответил в теме #10110 2 года 7 мес. назад
Благодарю за статью и ссылки на обзор каждого из движков MySQL!