Информация о таблицах myisamchk
myisamchk можно использовать для получения информации о таблицах MyISAM, особенно с параметрами -d, -e, -i и -v.
Общие параметры для сбора информации включают:
- myisamchk -d
- myisamchk -dv
- myisamchk -dvv
- myisamchk -ei
- myisamchk -eiv
Параметр -d возвращает краткое описание таблицы и ее ключей. Выполнение этого параметра во время обновления таблицы и при отключенном внешнем блокировании может привести к ошибке, но таблица не пострадает. Каждый дополнительный параметр v добавляет больше вывода. -e проверяет таблицу тщательно (но медленно), а параметр -i добавляет статистическую информацию.
Вывод -dvv
В следующей таблице описывается вывод запуска myisamchk с параметром -dvv:
| Заголовок | Описание |
|---|---|
| Файл MyISAM | Имя и путь к файлу индекса MyISAM (без расширения) |
| Формат записей | Формат хранения. Один из packed (динамический), fixed или compressed. |
| Набор символов | По умолчанию набор символов для таблицы. |
| Версия файла | Всегда 1. |
| Время создания | Время создания файла данных |
| Время восстановления | Последнее время восстановления файла. |
| Статус | Статус таблицы. Один или несколько из проанализированная, измененная, сбой, открыта, оптимизированные ключи и отсортированные страницы индекса. |
| Автоинкрементный ключ | Номер индекса столбца автоинкремента таблицы. Не отображается, если столбец автоинкремента не существует. |
| Последнее значение | Последнее сгенерированное значение автоинкремента. Не отображается, если столбец автоинкремента не существует. |
| Записи данных | Количество записей в таблице. |
| Удалённые блоки | Количество удалённых блоков, которые всё ещё резервируют место. Используйте OPTIMIZE TABLE для дефрагментации. |
| Части файла данных | Для динамических таблиц, количество блоков данных. Если таблица оптимизирована, это будет соответствовать количеству записей данных. |
| Удалённые данные | Количество байтов неутилизированных удалённых данных. Используйте OPTIMIZE TABLE для освобождения места. |
| Указатель файла данных | Размер в байтах указателя файла данных. Размер указателя файла данных в байтах. |
| Указатель файла ключей | Размер в байтах указателя файла индекса. |
| Максимальная длина файла данных | Максимальная длина в байтах, которую может достичь файл данных. |
| Максимальная длина файла ключей | Максимальная длина в байтах, которую может достичь файл индекса. |
| Длина записи | Место, занимаемое каждой строкой в байтах. |
| Описание таблицы | Описание всех индексов в таблице, за которым следуют все столбцы |
| Ключ | Номер индекса, начиная с единицы. Если не отображается, индекс является частью индекса с несколькими столбцами. |
| Начало | Где начинается часть индекса в строке. |
| Длина | Длина индекса или части индекса. Длина индекса с несколькими столбцами — это сумма длин составляющих. Индексы столбцов строк будут короче полной длины столбца, если индексируется только префикс строки. |
| Индекс | Является ли значение индекса уникальным или нет. Либо multip., либо unique. |
| Тип | Тип данных индекса или части индекса. |
| Запись/ключ | Запись числа строк на значение для индекса или части индекса. Используется оптимизатором для расчёта планов запросов. Можно обновить с помощью myisamchk-a. Если отсутствует, по умолчанию 30. |
| Корень | Адрес корневого блока индекса. |
| Размер блока | Размер блока индекса в байтах. |
| Поле | Номер столбца, начиная с единицы. Первая строка будет содержать положение и количество байт, используемых для хранения флагов NULL, если таковые имеются (см. Nullpos и Nullbit ниже). |
| Начало | Позиция байта столбца в строке таблицы. |
| Длина | Длина столбца в байтах. |
| Nullpos | Байт, содержащий флаг для значений NULL. Пусто, если столбец не может быть NULL. |
| Nullbit | Бит, содержащий флаг для значений NULL. Пусто, если столбец не может быть NULL. |
| Тип | Тип данных — см. таблицу ниже для списка возможных значений. |
| Дерево Хаффмана | Присутствует только для упакованных таблиц, содержит номер дерева Хаффмана, связанного со столбцом. |
| Биты | Присутствует только для упакованных таблиц, содержит количество битов, используемых в дереве Хаффмана. |
| Тип данных | Описание |
|---|---|
| постоянное | Все строки содержат одно и то же значение. |
| без дополнительного пространства | Дополнительное пространство не хранится. |
| без дополнительного пространства, не всегда | Дополнительное пространство не хранится, и сжатие дополнительного пространства не всегда выполняется для всех значений. |
| без дополнительного пространства, без пустых | Дополнительное пространство не хранится, пустые значения не хранятся. |
| поиск в таблице | Столбец был преобразован в ENUM. |
| zerofill(N) | Наиболее значимые N байты значения не хранятся, поскольку они всегда равны нулю. |
| без нулей | Нули не хранятся. |
| всегда ноль | Значения нуль хранятся с одним битом. |
Вывод -eiv
В следующей таблице описывается вывод запуска myisamchk с параметром -eiv:
| Заголовок | Описание |
|---|---|
| Записи данных | Количество записей в таблице. |
| Удалённые блоки | Количество удалённых блоков, которые всё ещё резервируют место. Используйте OPTIMIZE TABLE для дефрагментации. |
| Ключ | Номер индекса, начиная с единицы. |
| Используемые блоки ключей | Процент используемых блоков ключей. Проценты будут выше для оптимизированных таблиц. |
| Упакованные | Процент места, сэкономленного благодаря упаковке значений ключей с общим суффиксом. |
| Максимальные уровни | Глубина индекса B-дерева для ключа. Более крупные таблицы и более длинные значения ключей приводят к более высоким значениям. |
| Записи | Количество записей в таблице. |
| M.recordlength | Средняя длина строки. Для фиксированных строк будет фактической длиной каждой строки. |
| Упакованные | Процент экономии от удаления пробелов в конце строк. |
| Использованное пространство записей | Процент используемого файла данных. |
| Свободное пространство | Процент неиспользуемого файла данных. |
| Блоки/запись | Среднее количество блоков на запись. Значения, превышающие единицу, указывают на фрагментацию. Используйте OPTIMIZE TABLE для дефрагментации. |
| Блоки записей | Количество используемых блоков. Совпадёт с количеством строк для фиксированных или оптимизированных таблиц. |
| Блоки удаления | Количество удалённых блоков |
| Данные записи | Используемые байты в файле данных. |
| Удалённые данные | Неиспользуемые байты в файле данных. |
| Потерянное место | Общее количество потерянных байтов, например, при обновлении строки до более короткой длины. |
| Данные ссылки | Сумма байтов, используемых для указателей, связывающих разобщённые блоки. Каждый имеет размер от четырёх до семи байтов. |
Примеры
myisamchk -d /var/lib/mysql/test/posts
MyISAM file: /var/lib/mysql/test/posts
Record format: Compressed
Character set: utf8mb4_unicode_ci (224)
Data records: 1680 Deleted blocks: 0
Recordlength: 2758
Using only keys '0' of 5 possibly keys
table description:
Key Start Len Index Type
1 1 8 unique ulonglong
2 2265 80 multip. varchar prefix
63 80 varchar
17 5 binary
1 8 ulonglong
3 1231 8 multip. ulonglong
4 9 8 multip. ulonglong
5 387 764 multip. ? prefix
myisamchk -dvv /var/lib/mysql/test/posts
MyISAM file: /var/lib/mysql/test/posts
Record format: Compressed
Character set: utf8mb4_unicode_ci (224)
File-version: 1
Creation time: 2015-08-10 16:26:54
Recover time: 2015-08-10 16:26:54
Status: checked,analyzed,optimized keys
Auto increment key: 1 Last value: 1811
Checksum: 2299272165
Data records: 1680 Deleted blocks: 0
Datafile parts: 1680 Deleted data: 0
Datafile pointer (bytes): 6 Keyfile pointer (bytes): 6
Datafile length: 4298092 Keyfile length: 156672
Max datafile length: 281474976710654 Max keyfile length: 288230376151710719
Recordlength: 2758
Using only keys '0' of 5 possibly keys
table description:
Key Start Len Index Type Rec/key Root Blocksize
1 1 8 unique ulonglong 1 1024
2 2265 80 multip. varchar prefix 336 1024
63 80 varchar 187
17 5 binary 1
1 8 ulonglong 1
3 1231 8 multip. ulonglong 10 1024
4 9 8 multip. ulonglong 840 1024
5 387 764 multip. ? prefix 1 4096
Field Start Length Nullpos Nullbit Type Huff tree Bits
1 1 8 zerofill(6) 1 9
2 9 8 zerofill(7) 1 9
3 17 5 1 9
4 22 5 1 9
5 27 12 blob 2 9
6 39 10 blob 3 9
7 49 4 always zero 1 9
8 53 10 blob 1 9
9 63 81 varchar 4 9
10 144 81 varchar 5 5
11 225 81 varchar 5 5
12 306 81 varchar 1 9
13 387 802 varchar 6 9
14 1189 10 blob 1 9
15 1199 10 blob 7 9
16 1209 5 1 9
17 1214 5 1 9
18 1219 12 blob 1 9
19 1231 8 no zeros, zerofill(6) 1 9
20 1239 1022 varchar 7 9
21 2261 4 always zero 1 9
22 2265 81 varchar 8 8
23 2346 402 varchar 2 9
24 2748 8 no zeros, zerofill(7) 1 9
myisamchk -eiv /var/lib/mysql/test/posts Checking MyISAM file: /var/lib/mysql/test/posts Data records: 1680 Deleted blocks: 0 - check file-size - check record delete-chain No recordlinks - check key delete-chain block_size 1024: block_size 2048: block_size 3072: block_size 4096: - check index reference - check data record references index: 1 Key: 1: Keyblocks used: 92% Packed: 0% Max levels: 2 - check data record references index: 2 Key: 2: Keyblocks used: 93% Packed: 90% Max levels: 2 - check data record references index: 3 Key: 3: Keyblocks used: 92% Packed: 0% Max levels: 2 - check data record references index: 4 Key: 4: Keyblocks used: 92% Packed: 0% Max levels: 2 - check data record references index: 5 Key: 5: Keyblocks used: 88% Packed: 97% Max levels: 2 Total: Keyblocks used: 91% Packed: 91% - check records and index references Records: 1680 M.recordlength: 4102 Packed: 0% Recordspace used: 100% Empty space: 0% Blocks/Record: 1.00 Record blocks: 1680 Delete blocks: 0 Record data: 6892064 Deleted data: 0 Lost space: 1284 Linkdata: 6264 User time 0.11, System time 0.00 Maximum resident set size 3036, Integral resident set size 0 Non-physical pagefaults 925, Physical pagefaults 0, Swaps 0 Blocks in 0 out 0, Messages in 0 out 0, Signals 0 Voluntary context switches 0, Involuntary context switches 74
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/myisamchk-table-information/