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 не поддерживается.


 

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

25566. Психологическая система взглядов Дж. Локка 33.5 KB
  от рождения идеи бога души добра и зла не даны. Сны по Локку это идеи бодрствующего человека соединенные между собой причудливым образом. Сами же идеи не возникают пока органы чувств не снабдят нас ими. Идеи – содержание опыта ощущения образы восприятия представления памяти общие понятия аффективноволевые состояния Первоначально душа – чистый лист на который при жизни внешний мир наносит воздействия.
25567. Учение И. Канта об априорных формах сознания 32 KB
  Группы связей в априорных формах мышления: Категории рассудка: Категории количества: единство множество цельность Категории качества: реальность отрицание ограничение Категории отношения: субстанция и принадлежность причина и следствие взаимодействие Категории модальности: возможность и невозможность существование и несуществование предопределенность и случайность Идеи чистого разума: Идея абсолютного субъекта предмет рациональной психологии Идея мира предмет рациональной космологии Идея бога предмет рациональной...
25568. Наброс нагрузки на асинхронный двигатель 482.5 KB
  Если при этом механический момент Ммех окажется больше максимального Ммех Мm то двигатель будет увеличивать свое скольжение до s= 1 т. Пусть при этом моменте двигатель находится в установившемся состоянии точка а на рис. Электромагнитныи момент двигателя упадет при этом в Уравнение движения будет иметь вид: При уменьшении электромагнитного момента с М0 до M1 двигатель будет тормозиться и остановится.
25569. Возникновение ассоциативной психологии 33.5 KB
  Он определял ассоциации как неверные ненадежные способы комбинирования простых идей случайные и пассивные связи. Это основа возникновения идей и произвольных движений. Всем этим ассоциациям соответствуют ассоциированные дрожания нервных волокон для ощущений и движений или вибрации мозгового вещества для осознаваемых идей и сложных психических процессов. Все они – различные виды ассоциаций ощущений или идей.
25570. Пуск асинхронных двигателей, имеющих мощность, соизмеримую с мощностью источника питания 1.31 MB
  Выбор допустимой пусковой мощности асинхронного двигателя производится следующим образом. средние значения КПД и коэффициента мощности самозапускаемых двигателей; Если предположить что напряжение на сборных шинах равно U = 105 UH действительно напряжение на шинах 400 В вместо 380 В то напряжение на шинах в момент пуска будет равно: где суммарная мощность самозапускаемых двигателей. Дефицит активной мощности в энергосистеме обуславливает снижение частоты. Обычно одновременно с появлением дефицита активной мощности в энергосистеме...
25571. екарт и формирование французского материализма в XVIII в 32.5 KB
  Все свойства живой природы – продукты развития материи. Человек совершеннейшая часть природы. Законы природы распространяются на внутренний мир человека. Все обусловлено законами природы природный детерминизм Социальный детерминизм: К.
25572. Социологическое направление во французской философии и психологии в XIX веке 34.5 KB
  Обычаи моральные и юридические нормы представляют общественную силу господствующую над сознанием каждого отдельного человека. В двойственности заключается отличие человека от животных: у них нет общественного опыта. Они отражают различные стороны общественной жизни и называются коллективными представлениями: закрепляются в языке; обладают всеобщностью и необходимостью; являются продуктом длительного развития; создаются обществом а не личностью; оказывают принудительное воздействие на человека; они аффективно окрашены и принимаются...
25573. Радищев: о человеке, смертности и бессмертии 29.5 KB
  Радищев: о человеке смертности и бессмертии Украинский мыслитель Г. Радищев. Радищев ссылается на труды Гоббса Декарта Спинозы Пристли Локка французских материалистов опирается на знания по медицине но не меньше чем его материалистические взгляды его психологию определяла гуманистическая этика. Полемизируя с дуализмом Декарта Радищев отрицал существование души как самостоятельной субстанции.
25574. Н. Г. Чернышевский (1828 – 1889 ) о предмете и методах психологии 26 KB
  Чернышевский 1828 – 1889 о предмете и методах психологии Был сподвижником Добролюбова. Один из первых материалистов в России поставил вопрос о предмете задачах и методах научной психологии. Отсюда выводит главную задачу психологии: выяснение причин и законов протекания психических явлений. Причины и психические закономерности которые должны составить предмет психологии: Зависимость человеческой психики от внешнего мира от физиологических процессов протекающих в телесных органах органы чувств мозг НС.