Опубликован: 16.04.2007 | Уровень: специалист | Доступ: платный
Лекция 5:

Сценарии и утилиты MySQL

Ниже приведено описание вывода myisampack:

normal
Количество столбцов, для которых не используется никакого дополнительного сжатия
empty-space
Количество столбцов, содержащих пустые значения; они занимают по 1 биту
empty-zero
Количество целочисленных столбцов, в которых содержатся только двоичные нули ( ascii 0 ); каждый из них будет занимать 1 бит
empty-fill
Количество целочисленных столбцов, значения которых не полностью занимают отведенную для них разрядность в байтах; тип этих столбцов изменяется на тип с меньшей разрядностью (например, столбец INTEGER может быть изменен на MEDIUMINT )
pre-space
Количество десятичных столбцов, которые хранятся с начальными пробелами. В этом случае каждое значение будет содержать число ведущих пробелов
end-space
Количество столбцов, имеющих много оконечных пробелов. В этом случае каждое значение будет содержать число таких пробелов
table-lookup
Столбец имеет только небольшое количество различающихся значений, которые перед сжатием Хаффмана ( Huffman ) конвертируются в ENUM
zero
Количество столбцов, все значения которых являются нулями
Original trees
Начальное количество деревьев Хаффмана
After join
Количество различных деревьев Хаффмана, оставленных после соединения деревьев для сохранения небольшого пространства в заголовках

После сжатия таблицы myisamchk -dvv выводит дополнительную информацию по каждому полю.

  • Type

    Тип поля может содержать следующие дескрипторы:

    constant
    Все строки содержат одинаковое значение
    no endspace
    Не сохраняются замыкающие пробелы
    no endspace,	
    not_always
    Не сохраняются замыкающие пробелы и не производится сжатие за счет замыкающих пробелов для всех значений
    no endspace, 
    no empty
    Не сохраняются замыкающие пробелы. Не сохраняются пустые значения
    table-lookup
    Столбец был преобразован к ENUM
    zerofill(n)
    В значении n главных байтов всегда являются 0 и не сохранены.
    no zeros
    Не сохраняются нули.
    always zero
    Значения 0 хранятся в 1 бите.
  • Huff tree

    Дерево Хаффмана, связанное с полем.

  • Bits

    Количество битов, используемых в дереве Хаффмана.

После запуска pack_isam/myisampack нужно запустить isamchk/myisamchk для повторного создания индекса. В это время можно также отсортировать индексные блоки и создать статистику, необходимую для более эффективной работы оптимизатора MySQL:

myisamchk -rq -analyze -sort-index table_name.MYI
isamchk -rq -analyze -sort-index table_name.ISM

После установки сжатой таблицы в директорию базы данных MySQL нужно проделать операцию mysqladmin flush-tables, чтобы сервер mysqld начал использовать новую таблицу.

Для распаковки сжатой таблицы можно использовать опцию -unpack isamchk или myisamchk.

Обзор клиентских сценариев и утилит

Все клиенты MySQL, которые взаимодействуют с сервером с помощью библиотеки mysqlclient, используют следующие переменные окружения:

Имя Описание
MYSQL_UNIX_PORT Сокет, используемый по умолчанию для локальных подсоединений
MYSQL_TCP_PORT Устанавливаемый по умолчанию порт TCP/IP
MYSQL_PWD Устанавливаемый по умолчанию пароль
MYSQL_DEBUG Опции пошаговой отладки программ
TMPDIR Каталог для создания временных таблиц/файлов

Клиент mysql использует файл, указанный в переменной окружения MYSQL_HISTFILE, для хранения истории командной строки. Значение по умолчанию для этого файла истории — $HOME/.mysql_history, где $HOMEзначение переменной окружения HOME.

Все программы MySQL принимают множество различных опций.

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

В приведенном ниже списке дано краткое описание клиентских программ MySQL.

msql2mysql
Сценарий оболочки операционной системы, преобразующий программы базы данных mSQL к виду, приемлемому для MySQL. Он не обрабатывает всех случаев, но с него хорошо начинать такое преобразование
mysqlaccess
Сценарий, который проверяет привилегии доступа для комбинации значений хоста, пользователя и базы данных
mysqladmin
Утилита для выполнения административных функций, таких, как создание или удаление баз данных, перезагрузка таблиц привилегий, запись на диск содержимого таблиц, находящегося в буфере, повторное открытие файлов журналов. Утилита mysqladmin может также использоваться для получения информации с сервера о номере версии, процессах и состоянии сервера
mysqldump
Выводит содержимое базы данных MySQL в виде файла с SQL-операторами или в виде текстовых файлов с символом табуляции в качестве разделителя
mysqlimport
Импортирует текстовые файлы в соответствующие таблицы, используя команду LOAD DATA INFILE
>mysqlshow
Отображает информацию о существующих базах данных, таблицах, полях и индексах
replace
Служебная программа, использующаяся в сценарии msql2mysql, но имеющая также более широкое применение. Утилита replace изменяет строки, находящиеся в файлах или в стандартных входных данных. Использует принцип конечного автомата, чтобы в первую очередь найти соответствие длинных строк. Может применяться для замены строк

Утилита командной строки mysql

Утилита командной строки mysql является простой SQL-оболочкой (с возможностями библиотеки readline проекта GNU). Она поддерживает интерактивный и неинтерактивный режимы. В интерактивном режиме результаты запроса представляются в ASCII-формате. При использовании в неинтерактивном режиме (например, в качестве фильтра) результат представляется в текстовом формате с символом табуляции в качестве разделителя (выходной формат можно изменить при помощи параметров командной строки). Сценарии можно запускать, как показано ниже:

shell> mysql database < script.sql > output.tab

Если возникают проблемы из-за недостатка памяти на данном клиенте, применяйте параметр -quick! Это заставит mysql использовать функцию mysql_use_result() вместо функции mysql_store_result() для получения результирующей выборки данных.

Использовать mysql очень легко. Запустите mysql database или mysql -user=user_name -password=your_password database. Наберите SQL-команду прямо в командной строке, завершив ее одним из символов: ';', '\g' или '\G', и нажмите клавишу "Ввод".

Александра Каева
Александра Каева
Дмитрий Черепенин
Дмитрий Черепенин

Какого года данный курс?

Анна Елисеева
Анна Елисеева
Россия, Великий Новгород, Ногородский государственный университет имени Ярослава Мудрого, 2003
Эмиль Фернандо
Эмиль Фернандо
Россия