20452

MySQL

Доклад

Информатика, кибернетика и программирование

MySQL является собственностью компании Oracle Corporation получившей её вместе с поглощённой Sun Microsystems осуществляющей разработку и поддержку приложения. MySQL является решением для малых и средних приложений. Обычно MySQL используется в качестве сервера к которому обращаются локальные или удалённые клиенты однако в дистрибутив входит библиотека внутреннего сервера позволяющая включать MySQL в автономные программы.

Русский

2013-07-25

122 KB

1 чел.

24

MySQL (/mɑɪ ɛs kjuː ɛl/, «май-эс-кью-эль», жарг. мускул) [1] — свободная система управления базами данных (СУБД). MySQL является собственностью компании Oracle Corporation, получившей её вместе с поглощённой Sun Microsystems, осуществляющей разработку и поддержку приложения. Распространяется под GNU General Public License или под собственной коммерческой лицензией. Помимо этого разработчики создают функциональность по заказу лицензионных пользователей, именно благодаря такому заказу почти в самых ранних версиях появился механизм репликации.

MySQL является решением для малых и средних приложений. Входит в состав серверов WAMP, LAMP и в портативные сборки серверов Денвер, XAMPP. Обычно MySQL используется в качестве сервера, к которому обращаются локальные или удалённые клиенты, однако в дистрибутив входит библиотека внутреннего сервера, позволяющая включать MySQL в автономные программы.

Гибкость СУБД MySQL обеспечивается поддержкой большого количества типов таблиц: пользователи могут выбрать как таблицы типа MyISAM, поддерживающие полнотекстовый поиск, так и таблицы InnoDB, поддерживающие транзакции на уровне отдельных записей. Более того, СУБД MySQL поставляется со специальным типом таблиц EXAMPLE, демонстрирующим принципы создания новых типов таблиц. Благодаря открытой архитектуре и GPL-лицензированию, в СУБД MySQL постоянно появляются новые типы таблиц.

26 февраля 2008 года Sun Microsystems приобрела MySQL AB за 1 миллиард долларов.[2]

27 января 2010 года Oracle Corporation приобрела Sun Microsystems и включила MySQL в свою линейку СУБД.[3]

Сообществом разработчиков MySQL созданы различные ответвления кода, такие как Drizzle (англ.), OurDelta, Percona Server (англ.), и MariaDB (англ.). Все эти ответвления уже существовали на момент поглощения компаний Sun и MySQL AB корпорацией Oracle.

О происхождении MySQL

MySQL возникла как попытка применить mSQL к собственным разработкам компании: таблицам, для которых использовались ISAM — подпрограммы низкого уровня. В результате был выработан новый SQL-интерфейс, но API-интерфейс остался в наследство от mSQL. Откуда происходит название «MySQL» — доподлинно не известно. Разработчики дают два варианта: либо потому, что практически все наработки компании начинались с префикса My, либо в честь девочки по имени My, дочери Майкла Монти Видениуса, одного из разработчиков системы [4][5].

Логотип MySQL в виде дельфина носит имя «Sakila». Он был выбран из большого списка предложенных пользователями «имён дельфина». Имя «Sakila» было отправлено Open Source-разработчиком Ambrose Twebaze.

Лицензирование

MySQL имеет двойное лицензирование. MySQL может распространяться в соответствии с условиями лицензии GPL. Однако по условиям GPL, если какая-либо программа включает исходные коды MySQL, то она тоже должна распространяться по лицензии GPL. Это может расходиться с планами разработчиков, не желающих открывать исходные тексты своих программ. Для таких случаев предусмотрена коммерческая лицензия, которая также обеспечивает качественную сервисную поддержку.

Платформы

MySQL портирована на большое количество платформ: AIX, BSDi, FreeBSD, HP-UX, Linux, Mac OS X, NetBSD, OpenBSD, OS/2 Warp, SGI IRIX, Solaris, SunOS, SCO OpenServer, SCO UnixWare, Tru64, Windows 95, Windows 98, Windows NT, Windows 2000, Windows XP, Windows Server 2003, WinCE, Windows Vista и Windows 7. Существует также порт MySQL к OpenVMS. Важно отметить, что на официальном сайте СУБД для свободной загрузки предоставляются не только исходные коды, но и откомпилированные и оптимизированные под конкретные операционные системы готовые исполняемые модули СУБД MySQL.

Языки программирования

MySQL имеет API для языков Delphi, C, C++, Эйфель, Java, Лисп, Perl, PHP, Python, Ruby, Smalltalk и Tcl, библиотеки для языков платформы .NET, а также обеспечивает поддержку для ODBC посредством ODBC-драйвера MyODBC.

История выпусков

  •  Первый внутренний выпуск MySQL состоялся 23 мая 1995 года[источник не указан 548 дней].
  •  Версия для Windows систем (Windows 95 и NT) выпущена 8 января 1998.
  •  Версия 3.23: бета-версия в июне 2000, релиз в январе 2001.
  •  Версия 4.0: бета в августе 2002, релиз в марте 2003.
  •  Версия 4.1: бета в июне 2004, релиз в октябре 2004.
  •  Версия 5.0: бета в марте 2005, релиз в октябре 2005.
  •  Версия 5.1: разработка велась с ноября 2005, релиз в ноябре 2008.
  •  Версия 5.4: бета в апреле 2009, не была выпущена.
  •  Версия 5.5: релиз в декабре 2010.
  •  Версия 6.0: в разработке.

MySQL 4.0

Несмотря на то, что версия 4.0 является устаревшей, она всё ещё имеет значительное распространение. Основные возможности этой версии:

  •  практически полная реализация ANSI SQL-99, плюс расширения;
  •  межплатформенная совместимость;
  •  независимые типы таблиц (MyISAM для быстрого чтения, InnoDB для транзакций и ссылочной целостности);
  •  транзакции;
  •  поддержка SSL;
  •  кэширование запросов;
  •  репликация: один головной сервер на одного подчинённого, много подчинённых на одного головного;
  •  полнотекстовая индексация и поиск с использованием типа таблиц MyISAM;
  •  внедрённая библиотека базы данных;
  •  поддержка Юникода (UTF-8);
  •  таблицы InnoDB, обеспечивающие соответствие требованиям ACID;
  •  встроенный сервер, позволяющий включать MySQL в автономные приложения.

MySQL 4.1

Рекомендованной версией на 2005 год является MySQL 4.1 вышла 27 октября 2004. Она содержит следующие нововведения:

  •  вложенные запросы и производные таблицы.
  •  новая система кодировок и сортировок;
  •  более быстрый и гибкий протокол клиент-сервер с поддержкой подготовленных запросов, обеспечивающий их оптимальное исполнение;
  •  новая программа установки и настройки для Microsoft Windows и Linux;
  •  защищённые через OpenSSL соединения клиент-сервер;
  •  высоко-оптимизированная библиотека, которая может быть использована в сторонних программах;
  •  полноценная поддержка Юникода (UTF-8 и UCS2);
  •  стандартные пространственные типы данных GIS, для хранения географической информации;
  •  улучшенный полнотекстовый поиск и система помощи.

MySQL 5.0

Версия MySQL 5.0 вышла 24 октября 2005 года, в этой версии значительно расширена функциональность, которая ставит MySQL в один ряд с коммерческими СУБД. Если раньше СУБД MySQL обвиняли в недостаточной поддержке стандарта SQL, то с появлением пятой версии этой популярной базы данных, появилась практически полная поддержка стандарта SQL. MySQL 5.0 содержит следующие нововведения:

  •  хранимые процедуры и функции;
  •  обработчики ошибок;
  •  курсоры;
  •  триггеры;
  •  представления;
  •  информационная схема (так называемый системный словарь, содержащий метаданные).

MySQL 5.1

Версия MySQL 5.1 продолжает путь к стандарту SQL:2003. MySQL 5.1 содержит следующие нововведения [6][7].

  •  Сегментирование — возможность разбить одну большую таблицу на несколько частей, размещенных в разных файловых системах, основываясь на определенной пользователем функции. При определенных условиях это может дать серьезное увеличение производительности и, кроме того, облегчает масштабирование таблиц.
  •  Изменено поведение ряда операторов, для обеспечения большей совместимости со стандартом SQL2003.
  •  Построчная репликация (англ. row-based replication), при которой в бинарный лог будет записываться только информация о реально измененных строках таблицы вместо оригинального (и, возможно, медленного) текста запроса. Построчную репликацию можно использовать только для определенных типов sql-запросов, в терминах MySQL — смешанная репликация (англ. mixed replication).
  •  Встроенный планировщик периодически запускаемых работ. По синтаксису добавление задачи похоже на добавление триггера к таблице, по идеологии — на crontab.
  •  Дополнительный набор функций для обработки XML, реализация поддержки XPath.
  •  Новые средства диагностики проблем и утилиты для анализа производительности. Расширены возможности по управлению содержимым лог-файлов, логи теперь могут быть сохранены и в таблицах general_log и slow_log. Утилита mysqlslap позволяет провести нагрузочное тестирование БД с записью времени реакции на каждый запрос.
  •  Для упрощения операции обновления подготовлена утилита mysql_upgrade, которая выполнит проверку всех существующих таблиц на предмет совместимости с новой версией, и при необходимости выполнит надлежащие корректировки.
  •  MySQL Cluster отныне выпущен как отдельный продукт, базирующийся на MySQL 5.1 и хранилище NDBCLUSTER.
  •  Значительные изменения в работе MySQL Cluster, такие, как, например, возможность хранения табличных данных на диске.
  •  Возврат к использованию встроенной библиотеки libmysqld, отсутствовавшей в MySQL 5.0.
  •  API для плагинов, которое позволяет загружать сторонние модули, расширяющие функциональность (например, полнотекстовый поиск), без перезапуска сервера.
  •  Реализация парсера полнотекстового поиска в виде plug-in.
  •  Новый тип таблиц Maria (устойчивый к сбоям клон MyISAM).

Тип таблиц Maria

Maria (начиная с версии 5.2.x - Aria) — новый MySQL тип таблиц для хранения данных. Maria представляет собой расширенную версию хранилища MyISAM, с добавлением средств сохранения целостности данных после краха.

Основные достоинства Maria [8].

  •  В случае краха производится откат результатов выполнения текущей операции или возврат в состояние до команды LOCK TABLES. Реализация через ведение лога операций.
  •  Возможность восстановления состояния из любой точки в логе операций, включая поддержку CREATE/DROP/RENAME/TRUNCATE. Может быть использовано для создания инкрементальных бэкапов, через периодическое копирование лог файла.
  •  Поддержка всех форматов столбцов MyISAM, расширена новым форматом «rows-in-block», использующим страничный способ хранения данных, при котором данные в столбцах могут кэшироваться.
  •  В будущем будет реализовано два режима: транзакционный и без отражения в логе транзакций, для не критичных данных.
  •  Размер страницы данных равен 8Кб (в MyISAM 1Кб), что позволяет достичь более высокой производительности для индексов по полям фиксированного размера, но медленнее в случае индексирования ключей переменной длины.

MySQL 5.5

Ветка MySQL 5.5 базируется на невыпущенной серии MySQL 5.4 и содержит ряд значительных улучшений, связанных с повышением масштабируемости и производительности, среди которых:

  •  Использование по умолчанию движка InnoDB.
  •  Поддержка полусинхронного (semi-synchronous) механизма репликации, основанного на патчах к InnoDB от компании Google.
  •  Улучшение функций по партицированию данных. Расширенный синтаксис для разбиения больших таблиц на несколько частей, размещенных в * разных файловых системах (partitioning). Добавлены операции RANGE, LIST и метод оптимизации «partition pruning».
  •  Новый механизм оптимизации вложенных запросов и JOIN операций.
  •  Переработана система внутренних блокировок.
  •  Интегрированы патчи Google с оптимизацией работы InnoDB на CPU с большим количеством ядер.

MySQL 6.0

Версия MySQL 6.0 пока находится в стадии альфа-тестирования. Первоначально было принято решение о создании версии 5.2, однако вскоре эта версия была переименована в 6.0.

Одним из основных нововведений версии 6.0 планировалось сделать новый тип таблиц Falcon, разработанный в качестве потенциальной замены для InnoDB компании InnoBase, приобретённой компанией Oracle. В связи с приобретением в 2010 году Sun Microsystems тем же Oracle, судьба Falcon остается под вопросом.

Технические характеристики

Максимальные размеры таблиц

MySQL 3.22: до 4 Гб

MySQL 3.23+: До 8 миллионов терабайт. (2 ^ 63)

Размер таблицы ограничен её типом. В общем случае тип MyISAM ограничен предельным размером файла в файловой системе операционной системы. Например в NTFS этот размер теоретически может быть до 32 эксабайт. В случае InnoDB одна таблица может храниться в нескольких файлах, представляющих единое табличное пространство. Размер последнего может достигать 64 терабайт.

Локализация

Начиная с версии 4.1 в СУБД MySQL внедрена новая система кодировок и сортировок. При использовании кодировки Windows-1251, перед выполнением SQL-инструкций необходимо настроить кодировку соединения при помощи операторов:

 SET character_set_client='cp1251';

 SET character_set_results='cp1251';

 SET character_set_connection='cp1251';

Эти три оператора эквивалентны вызову одного оператора:

 SET NAMES 'cp1251'

Переменная character_set_client устанавливает кодировку данных отправляемых от клиента, переменная character_set_results устанавливает кодировку данных отправляемых клиенту, переменная character_set_connection устанавливает кодировку, в которую преобразуется информация пришедшая от клиента, перед выполнением запроса на сервере.

При использовании Юникода UTF-8 этот оператор выглядит следующим образом:

 SET NAMES 'utf8'

Кодировка ISO 8859-5 не поддерживается.


 

А также другие работы, которые могут Вас заинтересовать

84797. Современные десерты 114.95 KB
  Заведения общественного питания представляет собой отрасль, основу которой составляют предприятия (структурные торгово-производственные единицы), выпускающие кулинарную продукцию, характеризующиеся единством форм организации производства и обслуживания потребителей и различающиеся по типам...
84798. Разработка программы аутентификации пользователя и сообщений на основе алгоритма IDEA (режим сцепления блоков шифра) 279.83 KB
  Симметричные криптосистемы также симметричное шифрование симметричные шифры способ шифрования в котором для шифрования и расшифровывания применяется один и тот же криптографический ключ. До изобретения схемы асимметричного шифрования единственным существовавшим способом являлось симметричное шифрование.
84800. Проверка алгоритма и визуализация данных приложения С++ с использованием команд MatLab 143.5 KB
  MATLAB позволяет управлять, фильтровать и осуществлять предварительную обработку данных. Вы можете исследовать данные для нахождения трендов, проверки гипотез, построения описательных моделей. В MATLAB включены функции для фильтрации, сглаживания, свертки и быстрого преобразования Фурье (FFT).
84801. ОСНОВНЫЕ НАПРАВЛЕНИЯ СОВЕРШЕНСТВОВАНИЯ УЧЕТА ЗАТРАТ НА СОДЕРЖАНИЕ И ЭКСПЛУАТАЦИЮ МАШИННО-ТРАКТОРНОГО ПАРКА 132.81 KB
  Актуальным вопросом организации учета затрат по ремонту объектов машинно-тракторного парка является создание резерва на ремонт, который позволит более равномерно распределять затраты по периодам в течение года, снизит финансовую нагрузку на предприятие в случае необходимости проведения...
84802. Президент Российской Федерации и его полномочия в сфере исполнительной власти 227.5 KB
  Объясняя статус Президента РФ, нужно отметить, что он обладает большими полномочиями в области исполнительной власти. К примеру, Президент формирует Правительство РФ, с согласия Государственной Думы назначает Председателя Правительства РФ, имеет право председательствовать на заседаниях Правительства...
84803. Гидравлика и гидропривод: Методические указания 3.88 MB
  Приведены задания, методические указания к их выполнению, перечислены требования к выполнению курсовой работы по дисциплине «Гидравлика и гидропривод» на примерах расчета и выбора элементов гидроприводов горношахтного и подъемно-транспортного оборудования.
84804. Имущественное и личное страхование, их виды и развитие в условиях перехода к рыночной экономике 633 KB
  Человеку всегда было присуще желание как-то обезопасить себя от вредоносных последствий жизни или хотя бы попытаться свести их к минимуму. Для одних это связано с опасной работой, где высока доля риска. Многие граждане в преддверии старости и связанного с ней снижения трудоспособности...
84805. Методичні рекомендації: Теорія держави і права 421.5 KB
  Індивідуальні завдання виконуються студентами самостійно під керівництвом викладачів. Як правило, індивідуальні завдання виконуються кожним студентом окремо. У тих випадках, коли завдання мають комплексний характер, до їх виконання можуть залучатися кілька студентів.