Druzya.org
Возьмемся за руки, Друзья...
 
 
Наши Друзья

Александр Градский
Мемориальный сайт Дольфи. 
				  Светлой памяти детей,
				  погибших  1 июня 2001 года, 
				  а также всем жертвам теракта возле 
				 Тель-Авивского Дельфинариума посвящается...

 
liveinternet.ru: показано количество просмотров и посетителей

Библиотека :: Компьютеры и Программирование :: Начинаем изучать MySQL
<<-[Весь Текст]
Страница: из 157
 <<-
 
mSQL задавала тон в производительности баз данных, так что задачу себе ТсХ 
поставила непростую. Особыми целями проектирования MySQL были скорость, 
надежность и простота использования. Чтобы достичь такой производительности, в 
ТсХ приняли решение сделать многопоточным внутренний механизм MySQL. 
Многопоточное приложение одновременно выполняет несколько задач - так, как если 
бы одновременно выполнялось несколько экземпляров приложения.
Сделав MySQL многопоточной, ТсХ дала пользователям много выгод. Каждое входящее 
соединение обрабатывается отдельным потоком, при этом еще один всегда 
выполняющийся поток управляет соединениями, поэтому клиентам не приходится 
ждать завершения выполнения запросов других клиентов. Одновременно может 
выполняться любое количество запросов. Пока какой-либо поток записывает данные 
в таблицу, все другие запросы, требующие доступа к этой таблице, просто ждут, 
пока она освободится. Клиент может выполнять все допустимые операции, не 
обращая внимания на другие одновременные соединения. Управляющий поток 
предотвращает одновременную запись какими-либо двумя потоками в одну и ту же 
таблицу.
Такая архитектура, конечно, более сложна, чем однопоточная архитектура mSQL. 
Однако выигрыш в скорости благодаря одновременному выполнению нескольких 
запросов значительно превосходит потери скорости, вызванные увеличением 
сложности.
Другое преимущество многопоточной обработки присуще всем многопоточным 
приложениям. Несмотря на то что потоки совместно используют память процесса, 
они выполняются раздельно. Благодаря этому разделению выполнение потоков на 
многопроцессорных машинах может быть распределено по нескольким ЦП. На рис. 4-1 
показана эта многопоточная природа сервера MySQL.

Рис. 4-1. Клиент-серверная архитектура MySQL
Помимо выигрыша в производительности, полученного благодаря многопоточности, 
MySQL поддерживает большее подмножество SQL, чем mSQL. MySQL поддерживает более 
десятка типов данных, а также функции SQL. Ваше приложение может получить 
доступ к этим функциям через команды ANSI SQL.
MySQL фактически расширяет ANSI SQL несколькими новыми возможностями. В их 
числе новые функции (ENCRYPT, WEEKDAY, IF и другие), возможность 
инкрементирования полей (AUTO_INCREMENT и LAST_INSERT_ID), а также возможность 
различать верхний и нижний регистры.
ТсХ намеренно опустила некоторые возможности SQL, встречающиеся в больших базах 
данных. Наиболее заметно отсутствие транзакций и встроенных процедур. Как и 
Дэвид Хьюз в mSQL, ТсХ решила, что реализация этих возможностей нанесет слишком 
сильный удар по производительности. Однако ТсХ продолжает работу в этом 
направлении, но так, чтобы от потери производительности страдали только те 
пользователи, которым такие возможности действительно необходимы.
С 1996 года ТсХ использует MySQL в среде, где имеется более 40 баз данных, 
содержащих 10 000 таблиц. Из этих 10 000 более 500 таблиц имеют, в свою очередь,
 более 7 миллионов записей - около 100 Гбайт данных.
Установка MySQL
Прежде чем использовать MySQL, ее необходимо установить. MySQL работает почти 
на любой известной Unix-платформе, а также под управлением Windows 9x, Windows 
NT и OS/2. Для Windows 9x и Windows NT требуется приобрести лицензию. Если вы 
хотите лишь протестировать работу этой СУБД, имеется более старая бесплатная 
версия.
Дистрибутив MySQL существует как в двоичном виде, так и в виде исходного текста.
 Если вы не прочь внести свой вклад в проект MySQL, добавить к нему свои 
усовершенствования или просто не можете найти двоичного дистрибутива для своей 
платформы, то необходимо взять дистрибутив с исходным кодом. Большинству 
пользователей, впрочем, следует брать двоичный дистрибутив. Самые свежие 
дистрибутивы - двоичные и в виде исходных текстов - можно найти на http://www.
mysql.com 
Если вы получите дистрибутив в виде исходного текста, то перед установкой нужно 
его скомпилировать. В любом случае следует руководствоваться инструкциями, 
имеющимися в дистрибутиве.
Запуск MySQL
Как правило, сервер баз данных работает постоянно. В конце концов, какой смысл 
иметь базу данных, если нельзя получить данные. ТсХ создавала MySQL, имея это в 
виду, поэтому MySQL работает под Unix как демон, и как служба — под Windows NT. 
В Windows 95 есть только грубый аналог, реализуемый помещением ярлыка 
исполняемого приложения в папку Автозагрузка (StartUp). Важной особенностью 
работы под Windows 95 является то, что при создании каждого потока происходит 
утечка примерно 200 байт оперативной памяти. Поэтому под Windows 95 не следует 
надолго оставлять MySQL работающей. К Windows 98 и Windows NT это не относится.
Запуск MySQL осуществляется с помощью сценария safe_mysqld. Под Unix этот файл 
устанавливается по умолчанию как /usr/local/bin/ safe_mysqld. Это сценарий для 
командного процессора Борна, и вы можете редактировать его, чтобы изменять 
принятые по умолчанию параметры. Все параметры, которые вы зададите в 
safe_mysqld, будут переданы непосредственно демону MySQL.
MySQL — ветвящийся демон. Когда вы ее запускаете, программа создает свою копию 
и выполняется как фоновый процесс. Поэтому вам не нужно ничего делать, чтобы 
заставить MySQL выполняться в фоновом режиме. Если же для запуска MySQL вы 
используете сценарий safe_mysqld, то вы должны перевести его в фоновый режим:
/usr/local/mysql/bin/safe_mysqld &
Причина, по которой вы должны запускать safe_mysqld в фоновом режиме (и по 
 
<<-[Весь Текст]
Страница: из 157
 <<-