Справочное руководство по MySQL версии 4.1.1-alpha

       

Получение информации о таблице


Команды, представленные в этом разделе, используются для получения описания таблицы или статистики по таблице. Более подробное выборочное разъяснение вывода этих команд будет приведено ниже:

  • myisamchk -d tbl_name
  • Выполняет myisamchk в "описательном режиме" для вывода описания таблицы. Если MySQL использует опцию --skip-external-locking, то myisamchk может сообщить об ошибке для таблицы, обновляемой во время исполнения утилиты. Однако поскольку myisamchk не меняет таблицы в описательном режиме, то никакого риска разрушения данных нет.

  • myisamchk -d -v tbl_name
  • Для выдачи дополнительной информации по действиям, выполняемым утилитой myisamchk, добавляется -v для указания расширенного режима вывода сообщений.

  • myisamchk -eis tbl_name
  • Отображается только наиболее важная информация из таблицы. Работает медленно вследствие того, что приходится считывать всю таблицу.

  • myisamchk -eiv tbl_name
  • То же, что и -eis, но с сообщением о выполняемых действиях.

    Пример вывода myisamchk -d:

    MyISAM file: company.MYI Record format: Fixed length Data records: 1403698 Deleted blocks: 0 Recordlength: 226

    table description: Key Start Len Index Type 1 2 8 unique double 2 15 10 multip. text packed stripped 3 219 8 multip. double 4 63 10 multip. text packed stripped 5 167 2 multip. unsigned short 6 177 4 multip. unsigned long 7 155 4 multip. text 8 138 4 multip. unsigned long 9 177 4 multip. unsigned long 193 1 text

    Пример вывода myisamchk -d -v:

    MyISAM file: company Record format: Fixed length File-version: 1 Creation time: 1999-10-30 12:12:51 Recover time: 1999-10-31 19:13:01 Status: checked Data records: 1403698 Deleted blocks: 0 Datafile parts: 1403698 Deleted data: 0 Datafilepointer (bytes): 3 Keyfile pointer (bytes): 3 Max datafile length: 3791650815 Max keyfile length: 4294967294 Recordlength: 226

    table description: Key Start Len Index Type Rec/key Root Blocksize 1 2 8 unique double 1 15845376 1024 2 15 10 multip. text packed stripped 2 25062400 1024 3 219 8 multip. double 73 40907776 1024 4 63 10 multip. text packed stripped 5 48097280 1024 5 167 2 multip. unsigned short 4840 55200768 1024 6 177 4 multip. unsigned long 1346 65145856 1024 7 155 4 multip. text 4995 75090944 1024 8 138 4 multip. unsigned long 87 85036032 1024 9 177 4 multip. unsigned long 178 96481280 1024 193 1 text




    Пример вывода myisamchk -eis:

    Checking MyISAM file: company Key: 1: Keyblocks used: 97% Packed: 0% Max levels: 4 Key: 2: Keyblocks used: 98% Packed: 50% Max levels: 4 Key: 3: Keyblocks used: 97% Packed: 0% Max levels: 4 Key: 4: Keyblocks used: 99% Packed: 60% Max levels: 3 Key: 5: Keyblocks used: 99% Packed: 0% Max levels: 3 Key: 6: Keyblocks used: 99% Packed: 0% Max levels: 3 Key: 7: Keyblocks used: 99% Packed: 0% Max levels: 3 Key: 8: Keyblocks used: 99% Packed: 0% Max levels: 3 Key: 9: Keyblocks used: 98% Packed: 0% Max levels: 4 Total: Keyblocks used: 98% Packed: 17%

    Records: 1403698 M.recordlength: 226 Packed: 0% Recordspace used: 100% Empty space: 0% Blocks/Record: 1.00 Record blocks: 1403698 Delete blocks: 0 Recorddata: 317235748 Deleted data: 0 Lost space: 0 Linkdata: 0

    User time 1626.51, System time 232.36 Maximum resident set size 0, Integral resident set size 0 Non physical pagefaults 0, Physical pagefaults 627, Swaps 0 Blocks in 0 out 0, Messages in 0 out 0, Signals 0 Voluntary context switches 639, Involuntary context switches 28966

    Пример вывода myisamchk -eiv:

    Checking MyISAM file: company Data records: 1403698 Deleted blocks: 0 - check file-size - check delete-chain block_size 1024: index 1: index 2: index 3: index 4: index 5: index 6: index 7: index 8: index 9: No recordlinks - check index reference - check data record references index: 1 Key: 1: Keyblocks used: 97% Packed: 0% Max levels: 4 - check data record references index: 2 Key: 2: Keyblocks used: 98% Packed: 50% Max levels: 4 - check data record references index: 3 Key: 3: Keyblocks used: 97% Packed: 0% Max levels: 4 - check data record references index: 4 Key: 4: Keyblocks used: 99% Packed: 60% Max levels: 3 - check data record references index: 5 Key: 5: Keyblocks used: 99% Packed: 0% Max levels: 3 - check data record references index: 6 Key: 6: Keyblocks used: 99% Packed: 0% Max levels: 3 - check data record references index: 7 Key: 7: Keyblocks used: 99% Packed: 0% Max levels: 3 - check data record references index: 8 Key: 8: Keyblocks used: 99% Packed: 0% Max levels: 3 - check data record references index: 9 Key: 9: Keyblocks used: 98% Packed: 0% Max levels: 4 Total: Keyblocks used: 9% Packed: 17%



    - check records and index references [кое-что опущено для краткости]

    Records: 1403698 M.recordlength: 226 Packed: 0% Recordspace used: 100% Empty space: 0% Blocks/Record: 1.00 Record blocks: 1403698 Delete blocks: 0 Recorddata: 317235748 Deleted data: 0 Lost space: 0 Linkdata: 0

    User time 1639.63, System time 251.61 Maximum resident set size 0, Integral resident set size 0 Non physical pagefaults 0, Physical pagefaults 10580, Swaps 0 Blocks in 4 out 0, Messages in 0 out 0, Signals 0 Voluntary context switches 10604, Involuntary context switches 122798

    Для использованной в предыдущих примерах таблицы размеры файла данных и индексного файла были следующими:

    -rw-rw-r-- 1 monty tcx 317235748 Jan 12 17:30 company.MYD -rw-rw-r-- 1 davida tcx 96482304 Jan 12 18:35 company.MYM

    Ниже приводятся пояснения по различным типам выдаваемой myisamchk

    информации. ``keyfile'' означает индексный файл. ``Record'' (запись) и ``row'' (строка) являются синонимами:



    • ISAM file - Имя (индексного) файла ISAM.


    • Isam-version - Версия формата ISAM. На данный момент всегда 2.


    • Creation time - Время создания файла данных.


    • Recover time - Дата последнего восстановления индексного файла/файла


    • данных.

    • Data records - Количество записей в таблице.


    • Deleted blocks - Количество удаленных блоков, пространство для которых


    • все еще зарезервировано. Таблицу можно оптимизировать для сведения к минимуму этого пространства (see section 4.4.6.10 Оптимизация таблиц).

    • Datafile parts - Для динамического формата записей показывает количество


    • блоков данных. Для оптимизированной таблицы без фрагментированных записей совпадает с Data records.

    • Deleted data - Количество байтов удаленных данных, которые не были


    • затребованы. Можно оптимизировать таблицу, чтобы сделать этот объем минимальным (see section 4.4.6.10 Оптимизация таблиц).

    • Data file pointer - Размер указателя в файле данных (в байтах). Обычно


    • это 2, 3, 4 или 5 байтов. Для большинства таблиц достаточно 2 байтов, но назначение размера пока невозможно контролировать из MySQL. Для фиксированных таблиц указатель - это адрес записи, а для динамических - адрес байта.



    • Keyfile pointer - Размер указателя индексного файла в байтах. Обычно


    • составляет 1, 2 или 3 байта. Для большинства таблиц хватает 2 байтов, но размер автоматически вычисляется MySQL. Указатель всегда является адресом блока.

    • Max datafile length - Максимальный размер файла данных таблицы


    • (`.MYD'-файл) в байтах.

    • Max keyfile length - Максимальный размер индексного файла таблицы


    • (`.MYI-файла') в байтах.

    • Recordlength - Размер отдельной записи в байтах.


    • Record format - Формат, используемый для хранения строк таблицы. В


    • примерах, приведенных выше, использовался формат Fixed length. Другие возможные значения: Compressed и Packed.

    • table description - Список всех ключей в таблице. Для каждого ключа


    • представляется некоторая низкоуровневая информация:



      • Key


      • Номер данного ключа.

      • Start


      • Место в записи, где начинается данная часть индекса.

      • Len


      • Длина данной части индекса. Для упакованных чисел длина всегда должна равняться полной длине для столбца. Для строк длина может быть меньше полной длины индексированной колонки, поскольку допускается индексирование префикса столбца со значениями строками.

      • Индекс unique или multip. (multiple - повторяющийся/многократный)


      • Показывает, может ли одно значение встречаться в индексе многократно.

      • Type


      • Тип данных данной части индекса. Это тип данных ISAM с возможными вариантами - packed, stripped и empty.

      • Root


      • Адрес корневого индексного блока.

      • Blocksize


      • Размер каждого индексного блока. По умолчанию равен 1024, но значение можно изменить во время компиляции.

      • Rec/key


      • Статистическое значение, используемое оптимизатором. Оно показывает, сколько записей приходится на одно значение для данного ключа. Для уникального ключа это соотношение всегда 1. Значение может быть обновлено после загрузки таблицы (или значительного ее изменения) посредством myisamchk -a. Если соотношение совсем не обновляется, то по умолчанию принимается значение 30.

      • В первом из приведенных примеров 9-й ключ является составным с двумя


      • частями.

      • Keyblocks used - Процент использованных блоков ключей. Поскольку для




      • примера была взята таблица, совсем недавно реорганизованная при помощи myisamchk, то значения очень высоки (очень близки к теоретическому максимуму).

      • Packed - MySQL пытается упаковывать ключи с общим суффиксом. Это может


      • быть использовано только для ключей типа CHAR/VARCHAR/DECIMAL. Для длинных строк, таких как имена, при помощи упаковки можно значительно уменьшить занимаемое ими место. В третьем из приведенных примеров 4-й ключ состоит из 10 символов и для него достигнуто 60%-е уменьшение в объеме.

      • Max levels - Глубина B-дерева для данного ключа. В больших таблицах с


      • длинными ключами значение является большим.

      • Records Количество строк в таблице.


      • M.recordlength - Средняя длина записи. Для таблиц с фиксированной длиной


      • записи равняется точной длине записи.

      • Packed - MySQL отбрасывает пробелы в конце строк. Значение Packed


      • указывает на процент достигнутой этим экономии.

      • Recordspace used - Процент использования файла данных.


      • Empty space - На сколько процентов файл данных не использован.


      • Blocks/Record - Среднее число блоков на запись (т.е. из какого числа


      • связей состоит фрагментированная запись). Отношение всегда 1,0 для таблиц фиксированного формата. Важно, чтобы это значение было как можно ближе к 1,0. Если значение становится слишком большим, можно реорганизовать таблицу с помощью myisamchk. Обращайтесь к разделу See section 4.4.6.10 Оптимизация таблиц.

      • Recordblocks - Количество использованных блоков (связей). Для


      • фиксированного формата совпадает с количеством записей.

      • Deleteblocks - Количество удаленных блоков (связей).


      • Recorddata - Количество использованных байтов в файле данных.


      • Deleted data - Количество удаленных (неиспользуемых) байтов в файле


      • данных.

      • Lost space - Если запись при обновлении уменьшается, то теряется


      • некоторое пространство. Данное значение является суммой всех таких потерь в байтах.

      • Linkdata - При использовании динамического формата таблиц фрагменты


      • записи связываются с помощью указателей (каждый от 4 до 7 байтов). Linkdata - общий объем памяти, занимаемый всеми такими указателями.

        Если таблица была сжата при помощи myisampack, то myisamchk -d выдает дополнительную информацию о каждом столбце в таблице. Обращайтесь к разделу See section 4.7.4 myisampack, MySQL-генератор сжатых таблиц (только для чтения), где приведен пример такой информации и пояснение к ней.


        Содержание раздела