Сценарии и утилиты 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.
Утилита командной строки 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', и нажмите клавишу "Ввод".