Spec-Zone .ru
спецификации, руководства, описания, API
|
Получить описание a MyISAM
таблица или статистика об этом, используйте команды,
показанные здесь. Вывод от этих команд объясняется позже в этом разделе.
Выполнения myisamchk в "описывают режим", чтобы произвести описание Вашей таблицы. Если Вы запускаете сервер MySQL с внешней отключенной блокировки, myisamchk может сообщить об ошибке для таблицы, которая обновляется, в то время как это работает. Однако, потому что myisamchk не изменяется, таблица в описывают режим, нет никакого риска уничтожения данных.
Добавление -v
выполнения myisamchk в многословном режиме так, чтобы это
произвело больше информации о таблице. Добавление -v
второй раз
производит даже больше информации.
Шоу только наиболее важная информация от таблицы. Эта работа является медленной, потому что она должна считать всю таблицу.
Это походит -eis
, но говорит Вам, что делается.
tbl_name
параметром может быть любой имя a MyISAM
таблица или имя ее индексного файла, как описано в Разделе
4.6.3, "myisamchk — Утилита Табличного обслуживания MyISAM"
. Многократный tbl_name
параметры могут быть даны.
Предположите что названная таблица person
имеет следующую структуру. ( MAX_ROWS
табличная опция включается так, чтобы в выводе в качестве примера от myisamchk,
показанного позже, некоторые значения были меньшими и соответствовали выходному формату более легко.)
CREATE TABLE person( id INT NOT NULL AUTO_INCREMENT, last_name VARCHAR(20) NOT NULL, first_name VARCHAR(20) NOT NULL, birth DATE, death DATE, PRIMARY KEY (id), INDEX (last_name, first_name), INDEX (birth)) MAX_ROWS = 1000000;
Предположите также, что у таблицы есть они размеры индексного файла и файл данных:
-rw-rw---- 1 mysql mysql 9347072 Aug 19 11:47 person.MYD-rw-rw---- 1 mysql mysql 6066176 Aug 19 11:47 person.MYI
Пример myisamchk-dvv вывод:
MyISAM file: personRecord format: PackedCharacter set: latin1_swedish_ci (8)File-version: 1Creation time: 2009-08-19 16:47:41Recover time: 2009-08-19 16:47:56Status: checked,analyzed,optimized keysAuto increment key: 1 Last value: 306688Data records: 306688 Deleted blocks: 0Datafile parts: 306688 Deleted data: 0Datafile pointer (bytes): 4 Keyfile pointer (bytes): 3Datafile length: 9347072 Keyfile length: 6066176Max datafile length: 4294967294 Max keyfile length: 17179868159Recordlength: 54table description:Key Start Len Index Type Rec/key Root Blocksize1 2 4 unique long 1 99328 10242 6 20 multip. varchar prefix 512 3563520 1024 27 20 varchar 5123 48 3 multip. uint24 NULL 306688 6065152 1024Field Start Length Nullpos Nullbit Type1 1 12 2 4 no zeros3 6 21 varchar4 27 21 varchar5 48 3 1 1 no zeros6 51 3 1 2 no zeros
Объяснения типов информации myisamchk продукты даются здесь. "Файл ключей" обращается к индексному файлу. "Запись" и "строка" синонимичны, как "поле" и "столбец".
Начальная часть табличного описания содержит эти значения:
MyISAM file
Имя MyISAM
(индексируйте) файл.
Record format
Формат, привыкший к строкам таблицы store. Предыдущее использование в качестве примера Fixed length
. Другие возможные значения Compressed
и Packed
. (Packed
соответствует что SHOW TABLE STATUS
отчеты как Dynamic
.)
Chararacter set
Табличный набор символов значения по умолчанию.
File-version
Версия MyISAM
формат. В настоящий момент всегда 1.
Creation time
Когда файл данных создавался.
Recover time
Когда индексирование/файл данных было последнее восстановленный.
Status
Табличные флаги состояния. Возможные значения crashed
, open
, changed
, analyzed
,
optimized keys
, и sorted index pages
.
Auto increment key
, Last
value
Ключевое число, связанное таблица AUTO_INCREMENT
столбец, и последний
раз сгенерированное значение для этого столбца. Эти поля не появляются, если нет такого столбца.
Data records
Число строк в таблице.
Deleted blocks
Сколько удаленных блоков все еще зарезервировало пространство. Можно оптимизировать свою таблицу,
чтобы минимизировать это пространство. См. Раздел 7.6.4,"MyISAM
Табличная Оптимизация".
Datafile parts
Для формата динамической строки это указывает, сколько там блоки данных. Для оптимизированной
таблицы без фрагментированных строк это - то же самое как Data records
.
Deleted data
Сколько там байты неисправленных удаленных данных. Можно оптимизировать свою таблицу, чтобы
минимизировать это пространство. См. Раздел 7.6.4,"MyISAM
Табличная Оптимизация".
Datafile pointer
Размер указателя файла данных, в байтах. Это обычно 2, 3, 4, или 5 байтов. Большинство таблиц управляет с 2 байтами, но этим еще нельзя управлять от MySQL. Для фиксированных таблиц это - адрес строки. Для динамических таблиц это - адрес байта.
Keyfile pointer
Размер указателя индексного файла, в байтах. Это обычно 1, 2, или 3 байта. Большинство таблиц управляет с 2 байтами, но это вычисляется автоматически MySQL. Это всегда - адрес блока.
Max datafile length
Сколько времени табличный файл данных может стать в байтах.
Max keyfile length
Сколько времени табличный индексный файл может стать в байтах.
Recordlength
Сколько места каждая строка занимает в байтах.
table description
часть вывода включает список всех ключей в таблице. Для каждого
ключа myisamchk выводит на экран некоторую информацию о низком
уровне:
Key
Число этого ключа. Это значение показывают только для первого столбца ключа. Если это значение
отсутствует, строка соответствует второму или более позднему столбцу ключа многократного столбца.
Для таблицы, показанной в примере, есть два table description
строки
для второго индексируют. Это указывает, что это - многократная часть, индексируют с двумя частями.
Start
Где в строке эта часть индексирования запускается.
Len
Какой длины эта часть индексирования. Для упакованных чисел это должно всегда быть полным из
столбца. Для строк это может быть короче чем полный из индексированного столбца, потому что можно
индексировать префикс строкового столбца. Полная длина ключа многократной части является суммой
Len
значения для всех ключевых ролей.
Index
Может ли значение ключа существовать многократно в индексировании. Возможные значения unique
или multip.
(многократный).
Type
Какой тип данных эта часть индексирования имеет. Это - a MyISAM
тип
данных с возможными значениями packed
, stripped
, или empty
.
Root
Адрес корня индексирует блок.
Blocksize
Размер каждого индексирует блок. По умолчанию это 1024, но значение может быть изменено во время компиляции, когда MySQL создается из источника.
Rec/key
Это - статистическое значение, используемое оптимизатором. Это говорит, сколько строки там на значение для этого, индексируют. У уникального индекса всегда есть значение 1. Это может быть обновлено после того, как таблица загружается (или значительно изменяется) с myisamchk-a. Если это не обновляется вообще, значение по умолчанию 30 дается.
Последняя часть вывода предоставляет информацию о каждом столбце:
Field
Номер столбца.
Start
Позиция байта столбца в пределах строк таблицы.
Length
Длина столбца в байтах.
Nullpos
, Nullbit
Для столбцов, которые могут быть NULL
, MyISAM
хранилища NULL
значения как флаг в
байте. В зависимости от того, сколько nullable столбцов там, могут быть один или более байтов,
используемых с этой целью. Nullpos
и Nullbit
значения, если неосвобождено, указывают, какой байт и бит
содержат тот флаг, указывающий, является ли столбец NULL
.
Позиция и число байтов, используемых, чтобы сохранить NULL
флаги
показывают в строке для поля 1. Это - то, почему есть шесть Field
строки для person
таблица даже при том, что у этого есть только пять
столбцов.
Type
Тип данных. Значение может содержать любой из следующих дескрипторов:
constant
У всех строк есть то же самое значение.
no endspace
Не храните endspace.
no endspace, not_always
Не храните endspace и не делайте endspace сжатия для всех значений.
no endspace, no empty
Не храните endspace. Не храните пустые значения.
table-lookup
Столбец был преобразован в ENUM
.
zerofill(
N
)
Старшее значащее N
байты в значении всегда 0 и
не сохранены.
no zeros
Не храните нули.
always zero
Нулевые значения сохранены, используя один бит.
Huff tree
Число дерева Хафмана связалось со столбцом.
Bits
Число битов используется в дереве Хафмана.
Huff tree
и Bits
поля выводятся на экран, если таблица
была сжата с myisampack. См. Раздел
4.6.5, "myisampack — Генерируют Сжатые, Таблицы MyISAM
Только для чтения", для примера этой информации.
Пример myisamchk-eiv вывод:
Checking MyISAM file: personData records: 306688 Deleted blocks: 0- check file-size- check record delete-chainNo recordlinks- check key delete-chainblock_size 1024:- check index reference- check data record references index: 1Key: 1: Keyblocks used: 98% Packed: 0% Max levels: 3- check data record references index: 2Key: 2: Keyblocks used: 99% Packed: 97% Max levels: 3- check data record references index: 3Key: 3: Keyblocks used: 98% Packed: -14% Max levels: 3Total: Keyblocks used: 98% Packed: 89%- check records and index references*** LOTS OF ROW NUMBERS DELETED ***
Records: 306688 M.recordlength: 25 Packed: 83%Recordspace used: 97% Empty space: 2% Blocks/Record: 1.00Record blocks: 306688 Delete blocks: 0Record data: 7934464 Deleted data: 0Lost space: 256512 Linkdata: 1156096User time 43.08, System time 1.68Maximum resident set size 0, Integral resident set size 0Non-physical pagefaults 0, Physical pagefaults 0, Swaps 0Blocks in 0 out 7, Messages in 0 out 0, Signals 0Voluntary context switches 0, Involuntary context switches 0Maximum memory usage: 1046926 bytes (1023k)
myisamchk-eiv вывод включает следующую информацию:
Data records
Число строк в таблице.
Deleted blocks
Сколько удаленных блоков все еще зарезервировало пространство. Можно оптимизировать свою таблицу,
чтобы минимизировать это пространство. См. Раздел 7.6.4,"MyISAM
Табличная Оптимизация".
Key
Ключевое число.
Keyblocks used
Какой процент keyblocks используются. Когда таблица была только что реорганизована с myisamchk, значения очень высоки (очень около теоретического максимума).
Packed
MySQL пытается упаковать значения ключа, у которых есть общий суффикс. Это может только
использоваться для, индексирует на CHAR
и VARCHAR
столбцы. Для длинных индексированных строк, у которых
есть подобные крайние левые части, это может значительно уменьшить использованное пространство. В
предыдущем примере второй ключ 40 байтов длиной, и 97%-ое сокращение пространства достигается.
Max levels
Как глубоко B-дерево для этого ключа. Большие таблицы с длинными значениями ключа получают высокие значения.
Records
Сколько строк находится в таблице.
M.recordlength
Средняя длина строки. Это - точная длина строки для таблиц со строками фиксированной длины, потому что у всех строк есть та же самая длина.
Packed
MySQL разделяет пробелы от конца строк. Packed
значение указывает на
процент сбережений, достигнутых, делая это.
Recordspace used
Какой процент файла данных используется.
Empty space
Какой процент файла данных неиспользован.
Blocks/Record
Среднее число блоков на строку (то есть, сколько ссылок фрагментированная строка составляется из).
Это всегда 1.0 для таблиц фиксированного формата. Это значение должно остаться как близко к 1.0
насколько возможно. Если это становится слишком большим, можно реорганизовать таблицу. См. Раздел 7.6.4,"MyISAM
Табличная Оптимизация".
Recordblocks
Сколько блоков (ссылки) используется. Для таблиц фиксированного формата это - то же самое как число строк.
Deleteblocks
Сколько блоков (ссылки) удаляется.
Recorddata
Сколько байтов в файле данных используется.
Deleted data
Сколько байтов в файле данных удаляется (неиспользованные).
Lost space
Если строка обновляется к более короткому, некоторое пространство теряется. Это - сумма всех таких потерь в байтах.
Linkdata
Когда динамический формат таблицы используется, фрагменты строки соединяются с указателями (4 - 7
байтов каждый). Linkdata
сумма количества хранения, используемого всеми
такими указателями.