Опубликован: 16.04.2007 | Доступ: свободный | Студентов: 5325 / 859 | Оценка: 4.18 / 4.08 | Длительность: 16:03:00
Лекция 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', и нажмите клавишу "Ввод".

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

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