|
Реферат: MYSQL servermysqldСерверная часть пакета MySQL (mysqld). СИНТАКСИС: mysqld [OPTIONS] ОПИСАНИЕ: Программа mysqld является ядром СУБД MySQL. Она запускается как демон в системе и принимает подключения из клиентских программ, выполняя запросы и возвращая результаты. Она многопоточная, то есть обработает больше чем один запрос одновременно. Может наблюдаться спад производительности при использовании опции --log-isam, поскольку при этом очень многое пишется в файл протокола. Непериодические изменения, обновления и удаления могут уменьшить производительность на 5-10%. Производительность может сильно понизиться на обновлениях, требующих большого числа одновременных изменений. Опция --log-isam может использоваться, для копирования базы данных. ISAM журналы могут стать ОЧЕНЬ большими. Каждая операция UPDATE, DELETE и INSERT имеет заголовок в 13 байтов дополнительно к команде. Каждая открытая таблица требует девять байтов плюс длина имени файла таблицы. Это необходимо только для таблиц, которые еще не в кэше таблиц. Кроме того будут иметься одиннадцать байтов дополнительно для любых команд, которые кэшируют/блокируют таблицы. Эти события обычно вызваны внутренними командами mysql. Наиболее часто, когда используется SELECT. В большинстве случаев нужно выполнять mysqld из скрипта safe_mysqld . Программа mysqld поддерживает следующие опции командной строки:
Если опция -h не определена, mysql будет считать, что основной каталог = "/my/data/sql/mysql". Все базы данных размещены в каталоге [homedir]/[имя базы данных] . Опция -l должна использоваться осторожно. Когда используется сервер, с большим объемом транзакций, этот файл может стать большим очень быстро. Если не определяется имя logfile, при использовании опции -l mysqld будет писать протокол в файл [homedir]/[hostname].log. Опция -O позволяет определять значения для следующих параметров:
mysqldumpДамп содержания базы данных. СИНТАКСИС: mysqldump [OPTIONS] [database [table [field]]] ОПИСАНИЕ: Программа mysqldump используется для создания дампа содержания базы данных MySQL. Она пишет инструкции SQL в стандартный вывод. Эти инструкции SQL могут быть переназначены в файл. Можно резервировать базу данных MySQL, используя mysqldump, но при этом Необходимо убедиться, что в этот момент с базой данных не выполняется никаких других действий. Программа mysqldump поддерживает следующие параметры (можно использовать короткую или подробную версию):
Можно направить вывод mysqldump в клиентскую программу MySQL, чтобы копировать базу данных. Необходимо убедиться, что база данных не изменяется в это время, иначе получится противоречивая копию! mysqlshowПоказать информацию о сервере, базе данных или таблице. СИНТАКСИС: mysqlshow [OPTIONS] [database [table [field]]] ОПИСАНИЕ: Программа mysqlshow может использоваться, чтобы показать, с какими базами данных MySQL работает, какие таблицы данная база данных содержит, и какие поля есть в таблице в данной базе данных. Программа mysqlshow поддерживает следующие параметры:
Если последний параметр содержит '?' или '*', то они используются как подстановочные знаки. isamchkПроверка, восстановление, управление и сбор статистики по таблицам MySQL. СИНТАКСИС: isamchk [-?adeiqrsvwzIV] [-k #] [-O xxxx=size] [-Si] [-Sr #] [-O keybuffer=#] [-O readbuffer=#] [-O writebuffer=#] [-O sortbuffer=#] [-O sort_key_blocks=#] files ОПИСАНИЕ: Программа isamchk используется для проверки непротиворечивости таблиц и устранения любых проблем, которые это может вызвать. Isamchk может также использоваться, чтобы усилить таблицы в базах данных, которые содержат BLOB или поля символов переменной длины. Это необходимо только, если часто добавляются и удаляются записи из этих таблиц. Необходимо остановить СУБД MySQL перед запуском isamchk с единственным переключателем -r. Вообще, нужно использовать переключатель -rq для ремонта таблицы, потому что он выполняет "оперативный" ремонт. Для такого ремонта не нужно временного места в памяти, таким образом он проходит быстро, так как isamchk не копирует файл данных. Перед началом работы, надо перейти в каталог с таблицей, которая нуждается в проверке и/или ремонте. В общем случае, это $DATADIR/DBNAME. Опции программы isamchk:
ПРИМЕРЫ:
isamlogПолучение статистики, и использование isam-журналов. СИНТАКСИС: isamlog [-?iruvIV] [-c #] [-f #] [-p #] [-F filepath/] [-o #] [-R file recordpos] [-w write_file] [log-filename] ОПИСАНИЕ: Эта программа используется вместе с опцией --log-isam=file_name демона mysqld. Файл file_name будет хранить протокол всех изменений для всех таблиц. Программа isamlog может быть использована для получения информации об этом файле и обновить все таблицы и базы данных. Чтобы восстановить базу данных, нужна копия, которая содержит вашу базу данных до того, как mysqld сгенерировал ISAM журнал, или полный набор ISAM журналов с начала работы вашей базы данных.
safe_mysqldСкрипт для запуска демона mysqld. СИНТАКСИС: safe_mysqld [options to mysqld] ОПИСАНИЕ: Этот скрипт обычно выполняется при начальной загрузке, чтобы запустить mysqld. Если необходимо, чтобы DATADIR был помещен в иерархии каталога MySQL, что и mysqld, нужно подправить DATADIR в этом скрипте. 2.2. Дополнительные командыcomp_errГенерирует файлы сообщений об ошибках на национальном языке. СИНТАКСИС: comp_err [-?] [-I] [-V] fromfile[s] tofile ОПИСАНИЕ: Эта программа используется для компиляции текстовых файлов которые содержат соответствие между кодами ошибок mysql и текстовыми сообщениями об этих ошибках в формат, который понимает mysql. Это нужно для изменения уже существующего файла сообщений или генерации такого файла для другого языка. ПРИМЕР: comp_err share/english/errmsg.txt share/english/errmsg.sys msql2mysqlВыполняет начальное преобразование mSQL скрипта в MySQL. СИНТАКСИС: msql2mysql [filename] ОПИСАНИЕ: Скрипт msql2mysql используется как первый шаг при портировании msql скриптов в MySQL. Программа msql2mysql - фактически довольно простой скрипт, который использует команду replace, которая поставляется с СУБД MySQL, чтобы заменить mSQL обращения к функции на их MySQL эквиваленты. Меняются только имена, дополнительные параметры не добавляются. mysqlbugГенерирует отчет об ошибках. СИНТАКСИС: mysqlbug [address] ОПИСАНИЕ: Этот скрипт используется при сообщении об ошибках в MySQL. Он генерирует форму, которую для заполнения помещает в любой текстовый редактор, указанный в переменной $VISUAL (Vi по умолчанию). Форма будет содержать автоматически сгенерированную информацию относительно вашей системы, включая версии OS и MySQL и архитектуру. При окончании, форма будет отправлена по почте в список рассылки MySQL. perrorВыводит короткое текстовое объяснение числового кода ошибки. СИНТАКСИС: $ perror [-?vIV] [errorcodes] ОПИСАНИЕ: Программа perror предоставляет короткие текстовые объяснения числовых кодов ошибок, возвращаемых системой или СУБД MySQL. Программа perror поддерживает опции:
replaceСИНТАКСИС: replace [-?svIV] from to from to ... -- [files] ОПИСАНИЕ: Программа program используется скриптом msql2mysql. Replace может быть использована для замены строки на месте в файле или получать строку через канал (пайп), производить замену и выводить результат в STDOUT. Допустимы следующие опции:
ПРИМЕРЫ: replace Apple Orange somefile Заменит все вхождения Apple на Orange в файле somefile. cat INFILE | replace Apple Orange Blimp Train > OUTFILE Все вхождения Apple в файле INFILE будут заменены на Orange и результат выведен в файл OUTFILE. В то же время, все вхождения Blimp в файле INFILE будут заменены на Train и тоже выведены в файл OUTFILE. Таким образом, можно заменять более чем одно выражение за один проход. Можно использовать специальные символы во входных строках:
Replace простая и очень полезная утилита с большими потенциальными возможностями использования в MySQL. which1Найти команду. СИНТАКСИС: which1 [cmd] ОПИСАНИЕ: Эта команда, вероятно, полезна только на системах, которые не имеют, команды which, встроенной в оболочку, или доступной как команда. Выводит только первую найденную команду. zapПослать сигнал процессу, который соответствует образцу. СИНТАКСИС: zap [-signal] [-?Ift] pattern ОПИСАНИЕ: По умолчанию zap запросит подтверждение для каждого подходящего процесса. Программа zap поддерживает опции:
В качестве сигнала допускается любой сигнал системы unix. По умолчанию сигнал = 9 (завершить процесс). 3. Настройка mysqld (серверная часть пакета MySQL)При указании опции -O, отдельно (без дополнительных параметров) можно получить список всех переменных и их текущих значений. Это может выглядеть примерно так: $ mysqld -O Возможные переменные в опции -O:
Полезные замечания· Все потоки совместно используют ту же самую основную память. · 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 — выполняет запрос, ничего не возвращая (очень удобно при работе с 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. 2. А. Паутов. Документация по MySQL.3. М. Грубер. Понимание SQL. 4. Материалы интернет-сайтов: www.mysql.com www.infocity.kiev.ua |
Страницы: 1, 2
НОВОСТИ |
ВХОД |
|
Рефераты бесплатно, реферат бесплатно, курсовые работы, реферат, доклады, рефераты, рефераты скачать, рефераты на тему, сочинения, курсовые, дипломы, научные работы и многое другое. |
||
При использовании материалов - ссылка на сайт обязательна. |