Рефераты. MYSQL server p> 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::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 — выполняет запрос, ничего не возвращая (очень удобно при работе с insert, update и пр.)

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

$dbh->disconnect;

Заключение.

В процессе написания данной работы были выяснены следующие свойства
MySQL сервера:

. Многопоточность. Поддержка нескольких одновременных запросов.

. Оптимизация связей с присоединением многих данных за один проход.

. Записи фиксированной и переменной длины.

. Гибкая система привилегий и паролей.

. До 16 ключей в таблице. Каждый ключ может иметь до 15 полей.

. Поддержка ключевых полей и специальных полей в операторе CREATE.

. Поддержка чисел длинной от 1 до 4 байт (ints, float, double, fixed), строк переменной длины и меток времени.

. Интерфейс с языками C и perl.

. Основанная на потоках, быстрая система памяти.

. Утилита проверки и ремонта таблицы (isamchk).

. Все операции работы со строками не обращают внимания на регистр символов в обрабатываемых строках.

. Псевдонимы применимы как к таблицам, так и к отдельным колонкам в таблице.

. Все поля имеют значение по умолчанию. INSERT можно использовать на любом подмножестве полей.

. Легкость управления таблицей, включая добавление и удаление ключей и полей.

Итак, популярность MySQL сервера определяется не только тем, что пакет распространяется бесплатно и имеет высокую производительность, но ещё и тем, что имеет множество вышеперечисленных достоинств, многих из которых нет у других СУБД.

И виртуальный магазин, и сервер знакомств, и всевозможные сайты, предоставляющие платные услуги, — все нуждаются в возможности обрабатывать и хранить большие объемы информации. MySQL предоставляет всем эту возможность совершенно бесплатно. Это действительно одна из самых мощных, быстрых и надежных СУБД.

В ходе выполнения курсовой работы была написана программа, которая представляет собой Интернет-каталог. Она иллюстрирует возможности MySQL сервера, возможности интеграции MySQL c сетью Internet, что на сегодня весьма актуально. Созданная программа может использоваться в качестве
Интернет-каталога в Интернет-магазине.

Список литературы

1. М. Каба. MySQL и Perl – СПб.: Питер, 2001.

А. Паутов. Документация по MySQL.

2. М. Грубер. Понимание SQL.

3. Материалы интернет-сайтов: www.mysql.com www.infocity.kiev.ua



Страницы: 1, 2, 3, 4



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.