MySQL

Материал из ЭНЭ
Перейти к: навигация, поиск
Логотип MySQL

MySQL (произносится «Май Эс Кью Эль») — свободная система управления базами данных (СУБД). MySQL является собственностью компании MySQL AB, осуществляющей разработку и поддержку приложения. Распространяется под GNU General Public License и под собственной коммерческой лицензией, на выбор. Помимо этого компания MySQL AB разрабатывает функциональность по заказу лицензионных пользователей, именно благодаря такому заказу почти в самых ранних версиях появился механизм репликации.

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

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

comment1,

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

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

Платформы

MySQL портирована на большое количество платформ: AIX, BSDi, FreeBSD, HP-UX, GNU/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 и прочим версиям Microsoft Windows. Существует также порт MySQL к OpenVMS. Важно отметить, что компания MySQL AB предоставляет для свободной загрузки не только исходные коды СУБД, но и откомпилированные и оптимизированные под конкретные операционные системы готовые исполняемые модули, которые можно загрузить с зеркал, представленных на официальном сайте.

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

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

Устаревшая версия

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

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

На 20.06.2006 актуальна версия 5.1.

MySQL 4.1

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

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

MySQL 5.0

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

MySQL 5.1

Версия MySQL 5.1 продолжает путь к стандарту SQL2003. MySQL 5.1 содержит следующие нововведения:

  • планировщик заданий
  • сегментирование
  • изменено поведение ряда операторов, для обеспечения большей совместимости со стандартом SQL2003
  • значительные изменения в работе MySQL Cluster, такие, как, например, возможность хранения табличных данных на диске
  • row-based репликация
  • реализация парсера полнотекстового поиска в виде plug-in

MySQL 6.0

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

Одно из главнейших нововведений версии 6.0 — новый механизм хранения данных Falcon, разработанный компанией MySQL AB, в качестве потенциальной замены для InnoDB компании InnoBase, приобретённой компанией Oracle.

Локализация

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

SET character_set_client='cp1251';
SET character_set_results='cp1251'; 
SET collation_connection='cp1251_general_ci';

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

SET NAMES 'cp1251'

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

SET NAMES 'utf8'

См. также

Примечания

  1. http://www.mysql.com/company/legal/licensing/commercial-license.html

Ссылки

Литература

Шаблон:СУБД

В статье использованы материалы из Википедии.