MYSQL server

Полезные замечания Все потоки совместно используют ту же самую основную память. MySQL в настоящее время не использует memmap. Это может изменяться.

MYSQL server

Информация

Компьютеры, программирование

Другие материалы по предмету

Компьютеры, программирование

Сдать работу со 100% гаранией
, форма будет отправлена по почте в список рассылки MySQL.

perror

Выводит короткое текстовое объяснение числового кода ошибки.

СИНТАКСИС:

$ perror [-?vIV] [errorcodes]

ОПИСАНИЕ:

Программа perror предоставляет короткие текстовые объяснения числовых кодов ошибок, возвращаемых системой или СУБД MySQL.

Программа perror поддерживает опции:

-? or -IСправка.-vПодробная информация.-VИнформация о версии.

replace

СИНТАКСИС:

replace [-?svIV] from to from to ... -- [files]

ОПИСАНИЕ:

Программа program используется скриптом msql2mysql. Replace может быть использована для замены строки на месте в файле или получать строку через канал (пайп), производить замену и выводить результат в STDOUT.

Допустимы следующие опции:

-?Справка.-sРаботать молча (никаких статусных сообщений).-vПодробная информация о ходе работы (выводить дополнительные сообщения). ПРИМЕРЫ:

replace Apple Orange somefile

Заменит все вхождения Apple на Orange в файле somefile.

cat INFILE | replace Apple Orange Blimp Train > OUTFILE

Все вхождения Apple в файле INFILE будут заменены на Orange и результат выведен в файл OUTFILE. В то же время, все вхождения Blimp в файле INFILE будут заменены на Train и тоже выведены в файл OUTFILE. Таким образом, можно заменять более чем одно выражение за один проход.

Можно использовать специальные символы во входных строках:

\^Соответствует началу строки.\$Соответствует концу строки.\bСоответствует пробелу. Может появляться или отдельно, или в начале, или в конце лексемы. Если \b используется в конце лексемы, следующие замены начнутся после пробела. \b соответствует только пробелу.Replace простая и очень полезная утилита с большими потенциальными возможностями использования в MySQL.

 

which1

Найти команду.

СИНТАКСИС:

which1 [cmd]

ОПИСАНИЕ:

Эта команда, вероятно, полезна только на системах, которые не имеют, команды which, встроенной в оболочку, или доступной как команда. Выводит только первую найденную команду.

 

zap

Послать сигнал процессу, который соответствует образцу.

СИНТАКСИС:

zap [-signal] [-?Ift] pattern

ОПИСАНИЕ:

По умолчанию zap запросит подтверждение для каждого подходящего процесса.

Программа zap поддерживает опции:

-I or -? Справка.-fПослать сигнал без запроса подтверждения.-tВывести список процессов, соответствующих образцу, но не сигнал им не посылать.В качестве сигнала допускается любой сигнал системы unix. По умолчанию сигнал = 9 (завершить процесс).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3. Настройка mysqld (серверная часть пакета MySQL)

При указании опции -O, отдельно (без дополнительных параметров) можно получить список всех переменных и их текущих значений. Это может выглядеть примерно так:

$ mysqld -O

Возможные переменные в опции -O:

ИмяЗначение по умолчаниюback_logОпределите размер очереди для входящих tcp/ip подключений.. Некоторые ОС могут иметь максимальное значение этой переменной 128 или 256. keybufferРазмер кэш-буфера, для хранения всех недавно использованных ключей. Большой буфер дает самую лучшую эффективность. С переключателем -Sl распределен только один буфер.max_allowed_packetБуфер подключений сервера может быть изменен до этого значения, если пользователь дает длинную команду. Начальный буфер = 'net_buffer_length'. На каждое подключение выделяется один буфер.net_buffer_lengthНачальный размер буфера подключений. На каждое подключение выделяется один буфер.max_connectionsМаксимальное число подключений, которые mysqld может иметь открытыми в одно и то же время.table_cacheМаксимальное число таблиц сохраняемых открытыми на сервере. Таблицы хранятся открытыми, для ускорения запроса к часто используемым таблицам. Однако, каждая открытая таблица требует много памяти.recordbufferРазмер кэш-буфера для хранения прочитанных записей. На каждое подключение выделяется один буфер.sortbufferРазмер буфера, используемого при сортировке. На каждое подключение выделяется один буфер.max_sort_lengthМаксимальное время для сортировки?

Полезные замечания

  • Все потоки совместно используют ту же самую основную память.
  • MySQL в настоящее время не использует memmap. Это может изменяться.
  • Можно определять размер буфера для ключей при старте mysqld. Буфер ключей будет кэшировать все ключи во всех таблицах В ПОРЯДКЕ ПОСТУПЛЕНИЯ запросов (переменная keybuffer)
  • Каждое подключение использует некоторую часть потока, стек и буфер подключений (переменная net_buffer_length).
  • Каждый запрос, делающий последовательный просмотр записей в таблице, распределяет буфер чтений (переменная recordbuffer).
  • Каждый запрос, выполняющий сортировку, распределяет sortbuffer и один или два временных файла. Максимально необходимое дисковое пространство = (sort_key_length + sizeof(long))*2.
  • Все объединения выполняются за один проход, и результат сохраняется во временной таблице в памяти. Выполнение полного объединения и сортировки на двух больших таблицах может потребовать очень большого объема памяти.
  • Индексные файлы открываются один раз. Файлы данных открываются один раз для каждого параллельного потока. Каждый параллельный поток имеет полную таблицу struct и поле struct плюс память для трех полных строк столбцов. BLOB требует еще 5-8 байт.
  • Если таблица имеет BLOB, буфер будет распределен, чтобы читать данные BLOB. Этот буфер будет расти по мере необходимости, до размеров самого большого BLOB в таблице.
  • Когда таблица используется, она сохраняется в кэше. Этот кэш будет загружен и опорожнен В ПОРЯДКЕ ПОСТУПЛЕНИЯ запросов (FIFO). По умолчанию mysqld будет кэшировать 64 таблицы. Если много потоков обращаются к одной и той же таблице одновременно, будет иметься одна запись на поток. ТО ЕСТЬ, если два потока одновременно обращаются к той же самой таблице, будет две записи в кэше.
  • Команда mysqladmin reload закрывает все таблицы, которые не используются, и отмечает все используемые таблицы, которые будут закрыты, когда работающие потоки завершатся. Это позволяет эффективно использовать память, своевременно ее освобождая.

4. Возможности языка Perl для работы с MySQL

сервером.

При написании программы к данной работе выбран язык Perl, т. к. сегодня MySQL более широкое распространение получил на Web-серверах. А Perl как нельзя лучше других языков подходит для написания CGI-приложений. Взаимодействие сценария на языке Perl с MySQL можно изобразить схемой:

Сценарий Perl>DBI >DBD::MySQL>Cервер MySQL.

DBI обеспечивает единый интерфейс взаимодействия с различными системами управления базами данных. А DBD связывает этот интерфейс непосредственно с конкретной СУБД. В нашем случае это mysql. Для того, чтобы программа на Perl могла общаться и работать с базой данных, необходимо подключить модуль DBI и драйвер DBD. Это выполняется следующими операторами:

use DBI; use DBD::mysql;

Для того чтобы выполнять SQL запросы к базе данных, нужно установить логическое соединение с MySQL. Это выполняется при помощи метода объекта DBI. При этом он возвращает объект (дескриптор) соединения, который будет использоваться для непосредственного общения с базой данных.

$dbh = DBI->connect('DBI:mysql:dbname= GRYADKA; host= 127.0.0.1; port=3306','','',0);

Вызывая метод connect, ему передаются некоторые параметры. Первый параметр определяет свойства соединения.

Эта строка имеет следующую структуру:

"dbi:<имя DBD>:dbname= <имя базы данных>; host=<имя хоста>; port=<номер порта>"

Далее в методе connect определяются имя пользователя, пароль и флаги соединения.

Существует два способа работы с базами данных MySQL. Первый так называемый механизм курсоров, а второй, соответственно, без использования таковых.

Курсоры это объекты Perl, которые обеспечивают последовательный доступ к результатам запросов.

Каждый курсор отвечает за закрепленный за ним запрос.

$cur = $dbh->prepare('select * from MAIN;');

$cur это курсор, который для начала следует выполнить, используя метод execute:

$cur->execute;

Теперь, после выполнения запроса, чтобы получить результат запроса, используется метод fetchrow_array. Он поочередно возвращает массив полей результативной виртуальной таблицы.

Очень часто бывает необходимо подготовить запрос и после, при его выполнении, передавать ему различные данные. Это довольно просто решается при помощи механизма placeholders:

$cur = $dbh->prepare('insert into MAIN values(?,?)');

где вопросительные знаки следует заменить на значения переменных, переданных в качестве параметров метода execute:

$a00 = 2; $a01 = 'second record'; $cur->execute($a00, $a01);

Для того чтобы закрыть курсор, необходимо выполнить метод finish.

$cur->finish;

Курсоры очень удобный момент в технологии DBI. Однако можно обойтись и без них. Существует множество методов, которые вполне неплохо заменяют курсоры:

selectrow_array возвращает одну строку запроса в виде массива;

selectall_arrayref возвращает весь ответ сервера в виде массива, ссылка на массивы;

do выполняет запрос, ничего не возвращая (очень удобно п

Похожие работы

<< < 1 2 3 4 5 >