Русская Википедия:MySQL

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Шаблон:Карточка программы

MySQL (МФА: Шаблон:IPA) — свободная реляционная система управления базами данных[1]. Разработку и поддержку MySQL осуществляет корпорация Oracle, получившая права на торговую марку вместе с поглощённой Sun Microsystems, которая ранее приобрела шведскую компанию MySQL AB. Продукт распространяется как под GNU General Public License, так и под собственной коммерческой лицензией. Помимо этого, разработчики создают функциональность по заказу лицензионных пользователей. Именно благодаря такому заказу почти в самых ранних версиях появился механизм репликации.

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

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

26 февраля 2008 года Sun Microsystems приобрела MySQL AB за 1 млрд долларов[2], 27 января 2010 года Oracle приобрела Sun Microsystems за 7,4 млрд долларов[3] и включила MySQL в свою линейку СУБД[4].

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

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

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

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

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

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

Платформы

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

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

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

MyODBC представляет собой драйвер ODBC (2.50) уровня 0 (с некоторыми возможностями уровней 1 и 2) для подсоединения совместимого с ODBC приложения к MySQL. MyODBC работает на всех системах Microsoft Windows и на большинстве платформ Unix.

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

<timeline> Define $now = 05/04/2013 Define $begindate = 01/01/1999 Define $width = 700 Define $warning = 380 # $width - 120 Define $height = 750 ImageSize = width:$width height:$height PlotArea = left:40 right:10 bottom:100 top:20 DateFormat = dd/mm/yyyy Period = from:$begindate till:$now TimeAxis = orientation:ver Alignbars = early Legend = orientation:vertical position:bottom columns:1

  1. Color definitions #

Colors =

id:col5.1 value:rgb(0.4,0.6,1) Legend:Разрабатываются
id:col5.0 value:rgb(1,0.6,0.4) Legend:Разработка_прекращена
id:col2.0-l1 value:black
id:col2.0-l2 value:gray(0.98)
id:colbg value:gray(0.98)
id:colgrmaj value:gray(0.5)
id:colgrmin value:gray(0.8)
id:lighttext value:rgb(0.5,0.5,0.5)

ScaleMajor = gridcolor:colgrmaj unit:year increment:1 start:$begindate ScaleMinor = gridcolor:colgrmin unit:month increment:3 start:$begindate BackgroundColors = canvas:colbg

PlotData=

##################################################
# 3.23 filled bar #
##################################################
bar:3.23 width:40 from:05/07/1999 till:11/09/2003 color:col5.0 mark:(line,col5.0)
##################################################
# 3.23 line for all other versions #
##################################################
bar:3.23 mark:(line,col2.0-l2)
at: 08/07/1999 shift:(0,-15) # 3.23.1
at: 09/08/1999 shift:(0,-15) # 3.23.2
at: 13/09/1999 shift:(0,-15) # 3.23.3
at: 28/09/1999 shift:(0,-15) # 3.23.4
at: 20/10/1999 shift:(0,-15) # 3.23.5
at: 15/12/1999 shift:(0,-15) # 3.23.6
at: 10/12/1999 shift:(0,-15) # 3.23.7
at: 02/01/2000 shift:(0,-15) # 3.23.8
at: 29/01/2000 shift:(0,-15) # 3.23.9
at: 30/01/2000 shift:(0,-15) # 3.23.10
at: 16/02/2000 shift:(0,-15) # 3.23.11
at: 07/03/2000 shift:(0,-15) # 3.23.12
at: 14/03/2000 shift:(0,-15) # 3.23.13
at: 09/04/2000 shift:(0,-15) # 3.23.14
at: 08/05/2000 shift:(0,-15) # 3.23.15
at: 16/05/2000 shift:(0,-15) # 3.23.16
at: 07/06/2000 shift:(0,-15) # 3.23.16
at: 11/06/2000 shift:(0,-15) # 3.23.17
at: 11/07/2000 shift:(0,-15) # 3.23.18
at: 04/07/2000 shift:(0,-15) # 3.23.21
at: 31/07/2000 shift:(0,-15) # 3.23.22
at: 01/09/2000 shift:(0,-15) # 3.23.23
at: 08/09/2000 shift:(0,-15) # 3.23.24
at: 29/09/2000 shift:(0,-15) # 3.23.25
at: 18/10/2000 shift:(0,-15) # 3.23.26
at: 24/10/2000 shift:(0,-15) # 3.23.27
at: 06/12/2000 shift:(0,-15) # 3.23.29
at: 04/01/2001 shift:(0,-15) # 3.23.30
at: 22/01/2001 shift:(0,-15) # 3.23.32
at: 09/02/2001 shift:(0,-15) # 3.23.33
at: 10/03/2001 shift:(0,-15) # 3.23.34
at: 11/03/2001 shift:(0,-15) # 3.23.34a
at: 15/03/2001 shift:(0,-15) # 3.23.35
at: 27/03/2001 shift:(0,-15) # 3.23.36
at: 17/04/2001 shift:(0,-15) # 3.23.37
at: 09/05/2001 shift:(0,-15) # 3.23.38
at: 12/06/2001 shift:(0,-15) # 3.23.39
at: 18/07/2001 shift:(0,-15) # 3.23.40
at: 11/08/2001 shift:(0,-15) # 3.23.41
at: 08/09/2001 shift:(0,-15) # 3.23.42
at: 04/10/2001 shift:(0,-15) # 3.23.43
at: 31/10/2001 shift:(0,-15) # 3.23.44
at: 22/11/2001 shift:(0,-15) # 3.23.45
at: 29/11/2001 shift:(0,-15) # 3.23.46
at: 27/12/2001 shift:(0,-15) # 3.23.47
at: 14/02/2002 shift:(0,-15) # 3.23.49
at: 21/04/2002 shift:(0,-15) # 3.23.50
at: 31/05/2002 shift:(0,-15) # 3.23.51
at: 14/08/2002 shift:(0,-15) # 3.23.52
at: 09/10/2002 shift:(0,-15) # 3.23.53
at: 05/12/2002 shift:(0,-15) # 3.23.54
at: 23/01/2003 shift:(0,-15) # 3.23.55
at: 13/03/2003 shift:(0,-15) # 3.23.56
at: 06/06/2003 shift:(0,-15) # 3.23.57
##################################################
# 3.23 line & text for first version every year #
##################################################
bar:3.23 mark:(line,col2.0-l1) align:center fontsize:S textcolor:red
at: 05/07/1999 text:"3.23.0 Alfa" shift:(50,-3)
at: 28/06/2000 shift:(54,-3) text:"3.23.20 Beta"
at: 22/11/2000 shift:(51,-8) text:"3.23.28 RC"
at: 17/01/2001 shift:(54,1) text:"3.23.31 FCS"
at: 07/02/2002 shift:(42,-3) text:"3.23.48"
at: 11/09/2003 text:"3.23.58" shift:(0,5)
##################################################
# 4.0 filled bar #
##################################################
bar:4.0 width:40 from:01/10/2001 till:12/02/2007 color:col5.0 mark:(line,col5.0)
##################################################
# 4.0 line for all other versions #
##################################################
bar:4.0 mark:(line,col2.0-l2)
at: 23/12/2001 shift:(0,-15) # 4.0.1
at: 01/07/2002 shift:(0,-15) # 4.0.2
at: 29/09/2002 shift:(0,-15) # 4.0.4
at: 13/11/2002 shift:(0,-15) # 4.0.5
at: 20/12/2002 shift:(0,-15) # 4.0.7
at: 07/01/2003 shift:(0,-15) # 4.0.8
at: 09/01/2003 shift:(0,-15) # 4.0.9
at: 29/01/2003 shift:(0,-15) # 4.0.10
at: 20/02/2003 shift:(0,-15) # 4.0.11
at: 16/05/2003 shift:(0,-15) # 4.0.13
at: 18/07/2003 shift:(0,-15) # 4.0.14
at: 03/09/2003 shift:(0,-15) # 4.0.15
at: 17/10/2003 shift:(0,-15) # 4.0.16
at: 14/12/2003 shift:(0,-15) # 4.0.18
at: 04/05/2004 shift:(0,-15) # 4.0.19
at: 17/05/2004 shift:(0,-15) # 4.0.20
at: 06/09/2004 shift:(0,-15) # 4.0.21
at: 27/10/2004 shift:(0,-15) # 4.0.22
at: 18/12/2004 shift:(0,-15) # 4.0.23
at: 05/07/2005 shift:(0,-15) # 4.0.25
at: 08/09/2005 shift:(0,-15) # 4.0.26
at: 06/05/2006 shift:(0,-15) # 4.0.27
##################################################
# 4.0 line & text for first version every year #
##################################################
bar:4.0 mark:(line,col2.0-l1) align:center fontsize:S textcolor:red
at: 01/10/2001 text:"4.0.0 Alfa" shift:(46,-3)
at: 26/08/2002 shift:(48,-3) text:"4.0.3 Beta"
at: 14/12/2002 shift:(45,-3) text:"4.0.6 RC"
at: 15/03/2003 shift:(51,-2) text:"4.0.12 FCS"
at: 12/02/2004 shift:(40,-3) text:"4.0.18"
at: 04/03/2005 shift:(40,-3) text:"4.0.24"
at: 12/02/2007 text:"4.0.30" shift:(0,5)
##################################################
# 4.1 filled bar #
##################################################
bar:4.1 width:40 from:03/04/2003 till:01/12/2008 color:col5.0 mark:(line,col5.0)
##################################################
# 4.1 line for all other versions #
##################################################
bar:4.1 mark:(line,col2.0-l2)
at: 01/12/2003 shift:(0,-15) # 4.1.1
at: 28/05/2004 shift:(0,-15) # 4.1.2
at: 16/09/2004 shift:(0,-15) # 4.1.5
at: 10/10/2004 shift:(0,-15) # 4.1.6
at: 14/12/2004 shift:(0,-15) # 4.1.8
at: 12/02/2005 shift:(0,-15) # 4.1.10
at: 01/04/2005 shift:(0,-15) # 4.1.11
at: 13/05/2005 shift:(0,-15) # 4.1.12
at: 15/07/2005 shift:(0,-15) # 4.1.13
at: 17/08/2005 shift:(0,-15) # 4.1.14
at: 13/10/2005 shift:(0,-15) # 4.1.15
at: 29/11/2005 shift:(0,-15) # 4.1.16
at: 29/04/2006 shift:(0,-15) # 4.1.19
at: 24/05/2006 shift:(0,-15) # 4.1.20
at: 19/07/2006 shift:(0,-15) # 4.1.21
at: 02/11/2006 shift:(0,-15) # 4.1.22
##################################################
# 4.1 line & text for first version every year #
##################################################
bar:4.1 mark:(line,col2.0-l1) align:center fontsize:S textcolor:red
at: 03/04/2003 text:"4.1.0 Alfa" shift:(46,-3)
at: 28/06/2004 shift:(48,-8) text:"4.1.3 Beta"
at: 26/08/2004 shift:(45,-4) text:"4.1.4 RC"
at: 23/10/2004 shift:(48,-2) text:"4.1.7 FCS"
at: 11/01/2005 shift:(37,1) text:"4.1.9"
at: 27/01/2006 shift:(40,-3) text:"4.1.18"
at: 12/06/2007 shift:(40,-3) text:"4.1.23"
at: 01/03/2008 shift:(40,-3) text:"4.1.24"
at: 01/12/2008 text:"4.1.25" shift:(0,5)
##################################################
# 5.0 filled bar #
##################################################
bar:5.0 width:40 from:22/12/2003 till:21/03/2012 color:col5.0 mark:(line,col5.0)
##################################################
# 5.0 line for all other versions #
##################################################
bar:5.0 mark:(line,col2.0-l2)
at: 01/12/2004 shift:(0,-15) # 5.0.2
at: 16/04/2005 shift:(0,-15) # 5.0.4
at: 26/05/2005 shift:(0,-15) # 5.0.6
at: 10/06/2005 shift:(0,-15) # 5.0.7
at: 05/07/2005 shift:(0,-15) # 5.0.9
at: 27/07/2005 shift:(0,-15) # 5.0.10
at: 06/08/2005 shift:(0,-15) # 5.0.11
at: 02/09/2005 shift:(0,-15) # 5.0.12
at: 10/11/2005 shift:(0,-15) # 5.0.16
at: 14/12/2005 shift:(0,-15) # 5.0.17
at: 21/12/2005 shift:(0,-15) # 5.0.18
at: 31/03/2006 shift:(0,-15) # 5.0.20
at: 18/04/2006 shift:(0,-15) # 5.0.20a
at: 02/05/2006 shift:(0,-15) # 5.0.21
at: 24/05/2006 shift:(0,-15) # 5.0.22
at: 27/07/2006 shift:(0,-15) # 5.0.24
at: 25/08/2006 shift:(0,-15) # 5.0.24a
at: 12/09/2006 shift:(0,-15) # 5.0.25
at: 03/10/2006 shift:(0,-15) # 5.0.26
at: 21/10/2006 shift:(0,-15) # 5.0.27
at: 24/10/2006 shift:(0,-15) # 5.0.28
at: 14/11/2006 shift:(0,-15) # 5.0.30
at: 20/12/2006 shift:(0,-15) # 5.0.32
at: 09/01/2007 shift:(0,-15) # 5.0.33
at: 17/01/2007 shift:(0,-15) # 5.0.34
at: 20/02/2007 shift:(0,-15) # 5.0.36
at: 12/04/2007 shift:(0,-15) # 5.0.36sp1
at: 27/02/2007 shift:(0,-15) # 5.0.37
at: 20/03/2007 shift:(0,-15) # 5.0.38
at: 17/04/2007 shift:(0,-15) # 5.0.40
at: 01/05/2007 shift:(0,-15) # 5.0.41
at: 23/05/2007 shift:(0,-15) # 5.0.42
at: 21/06/2007 shift:(0,-15) # 5.0.44
at: 01/08/2007 shift:(0,-15) # 5.0.44a
at: 04/07/2007 shift:(0,-15) # 5.0.45
at: 13/07/2007 shift:(0,-15) # 5.0.46
at: 27/08/2007 shift:(0,-15) # 5.0.48
at: 19/10/2007 shift:(0,-15) # 5.0.50
at: 12/12/2007 shift:(0,-15) # 5.0.50sp1
at: 15/11/2007 shift:(0,-15) # 5.0.51
at: 11/01/2008 shift:(0,-15) # 5.0.51a
at: 24/04/2008 shift:(0,-15) # 5.0.51b
at: 30/11/2007 shift:(0,-15) # 5.0.52
at: 14/12/2007 shift:(0,-15) # 5.0.54
at: 11/01/2008 shift:(0,-15) # 5.0.54a
at: 06/02/2008 shift:(0,-15) # 5.0.56
at: 30/03/2008 shift:(0,-15) # 5.0.56sp1
at: 28/04/2008 shift:(0,-15) # 5.0.60
at: 27/06/2008 shift:(0,-15) # 5.0.60sp1
at: 12/05/2008 shift:(0,-15) # 5.0.62
at: 10/06/2008 shift:(0,-15) # 5.0.64
at: 09/07/2008 shift:(0,-15) # 5.0.66
at: 16/07/2008 shift:(0,-15) # 5.0.66a
at: 23/10/2008 shift:(0,-15) # 5.0.66sp1
at: 04/08/2008 shift:(0,-15) # 5.0.67
at: 13/08/2008 shift:(0,-15) # 5.0.68
at: 27/09/2008 shift:(0,-15) # 5.0.70
at: 24/10/2008 shift:(0,-15) # 5.0.72
at: 13/01/2009 shift:(0,-15) # 5.0.72sp1
at: 03/12/2008 shift:(0,-15) # 5.0.74
at: 30/04/2009 shift:(0,-15) # 5.0.74sp1
at: 17/12/2008 shift:(0,-15) # 5.0.75
at: 28/01/2009 shift:(0,-15) # 5.0.77
at: 06/02/2009 shift:(0,-15) # 5.0.78
at: 09/03/2009 shift:(0,-15) # 5.0.79
at: 01/05/2009 shift:(0,-15) # 5.0.80
at: 01/05/2009 shift:(0,-15) # 5.0.81
at: 20/05/2009 shift:(0,-15) # 5.0.82
at: 21/07/2009 shift:(0,-15) # 5.0.82sp1
at: 29/05/2009 shift:(0,-15) # 5.0.83
at: 07/07/2009 shift:(0,-15) # 5.0.84
at: 30/09/2009 shift:(0,-15) # 5.0.84sp1
at: 11/08/2009 shift:(0,-15) # 5.0.85
at: 09/09/2009 shift:(0,-15) # 5.0.86
at: 15/10/2009 shift:(0,-15) # 5.0.87
at: 03/02/2010 shift:(0,-15) # 5.0.87sp1
at: 04/11/2009 shift:(0,-15) # 5.0.88
at: 02/12/2009 shift:(0,-15) # 5.0.89
at: 05/05/2010 shift:(0,-15) # 5.0.91
at: 05/05/2011 shift:(0,-15) # 5.0.93
at: 05/07/2011 shift:(0,-15) # 5.0.94
##################################################
# 5.0 line & text for first version every year #
##################################################
bar:5.0 mark:(line,col2.0-l1) align:center fontsize:S textcolor:red
at: 22/12/2003 text:"5.0.0 Alfa" shift:(46,-3)
at: 27/07/2004 shift:(36,-3) text:"5.0.1"
at: 23/03/2005 shift:(48,-3) text:"5.0.3 Beta"
at: 22/09/2005 shift:(48,-8) text:"5.0.13 RC"
at: 19/10/2005 shift:(51,1) text:"5.0.15 FCS"
at: 04/03/2006 shift:(40,-3) text:"5.0.19"
at: 19/01/2007 shift:(50,-3) text:"5.0.30sp1"
at: 11/01/2008 shift:(52,-3) text:"5.0.50sp1a"
at: 05/01/2009 shift:(40,-3) text:"5.0.76"
at: 15/01/2010 shift:(40,-3) text:"5.0.90"
at: 07/02/2011 shift:(40,-3) text:"5.0.92"
at: 10/01/2012 shift:(40,-3) text:"5.0.95"
at: 21/03/2012 shift:(0,5) text:"5.0.96"
##################################################
# 5.1 filled bar #
##################################################
bar:5.1 width:40 from:25/11/2005 till:$now color:col5.1 mark:(line,col5.1)
##################################################
# 5.1 line for all other versions #
##################################################
bar:5.1 mark:(line,col2.0-l2)
at: 29/11/2005 shift:(0,-15) # 5.1.3
at: 21/12/2005 shift:(0,-15) # 5.1.4
at: 10/01/2006 shift:(0,-15) # 5.1.5
at: 01/02/2006 shift:(0,-15) # 5.1.6
at: 27/02/2006 shift:(0,-15) # 5.1.7
at: 12/04/2006 shift:(0,-15) # 5.1.9
at: 25/05/2006 shift:(0,-15) # 5.1.11
at: 24/10/2006 shift:(0,-15) # 5.1.12
at: 05/12/2006 shift:(0,-15) # 5.1.14
at: 25/01/2007 shift:(0,-15) # 5.1.15
at: 26/02/2007 shift:(0,-15) # 5.1.16
at: 04/04/2007 shift:(0,-15) # 5.1.17
at: 08/05/2007 shift:(0,-15) # 5.1.18
at: 25/05/2007 shift:(0,-15) # 5.1.19
at: 25/06/2007 shift:(0,-15) # 5.1.20
at: 16/08/2007 shift:(0,-15) # 5.1.21
at: 29/01/2008 shift:(0,-15) # 5.1.23
at: 08/04/2008 shift:(0,-15) # 5.1.24
at: 28/05/2008 shift:(0,-15) # 5.1.25
at: 30/06/2008 shift:(0,-15) # 5.1.26
at: 28/08/2008 shift:(0,-15) # 5.1.28
at: 11/10/2008 shift:(0,-15) # 5.1.29
at: 19/03/2009 shift:(0,-15) # 5.1.31sp1
at: 12/02/2009 shift:(0,-15) # 5.1.32
at: 13/03/2009 shift:(0,-15) # 5.1.33
at: 02/04/2009 shift:(0,-15) # 5.1.34
at: 25/06/2009 shift:(0,-15) # 5.1.34sp1
at: 13/05/2009 shift:(0,-15) # 5.1.35
at: 16/06/2009 shift:(0,-15) # 5.1.36
at: 13/07/2009 shift:(0,-15) # 5.1.37
at: 10/10/2009 shift:(0,-15) # 5.1.37sp1
at: 01/09/2009 shift:(0,-15) # 5.1.38
at: 04/09/2009 shift:(0,-15) # 5.1.39
at: 06/10/2009 shift:(0,-15) # 5.1.40
at: 25/11/2009 shift:(0,-15) # 5.1.40sp1
at: 05/11/2009 shift:(0,-15) # 5.1.41
at: 15/12/2009 shift:(0,-15) # 5.1.42
at: 15/01/2010 shift:(0,-15) # 5.1.43
at: 25/03/2010 shift:(0,-15) # 5.1.43sp1
at: 04/02/2010 shift:(0,-15) # 5.1.44
at: 01/03/2010 shift:(0,-15) # 5.1.45
at: 06/04/2010 shift:(0,-15) # 5.1.46
at: 23/06/2010 shift:(0,-15) # 5.1.46sp1
at: 06/05/2010 shift:(0,-15) # 5.1.47
at: 02/06/2010 shift:(0,-15) # 5.1.48
at: 09/07/2010 shift:(0,-15) # 5.1.49
at: 28/09/2010 shift:(0,-15) # 5.1.49sp1
at: 03/08/2010 shift:(0,-15) # 5.1.50
at: 10/09/2010 shift:(0,-15) # 5.1.51
at: 11/10/2010 shift:(0,-15) # 5.1.52
at: 21/02/2011 shift:(0,-15) # 5.1.52sp1
at: 03/11/2010 shift:(0,-15) # 5.1.53
at: 26/11/2010 shift:(0,-15) # 5.1.54
at: 01/03/2011 shift:(0,-15) # 5.1.56
at: 05/05/2011 shift:(0,-15) # 5.1.57
at: 05/07/2011 shift:(0,-15) # 5.1.58
at: 15/09/2011 shift:(0,-15) # 5.1.59
at: 16/11/2011 shift:(0,-15) # 5.1.60
at: 10/01/2012 shift:(0,-15) # 5.1.61
at: 21/03/2012 shift:(0,-15) # 5.1.62
at: 07/05/2012 shift:(0,-15) # 5.1.63
at: 09/08/2012 shift:(0,-15) # 5.1.65
at: 28/09/2012 shift:(0,-15) # 5.1.66
##################################################
# 5.1 line & text for first version every year #
##################################################
bar:5.1 mark:(line,col2.0-l1) align:center fontsize:S textcolor:blue
at: 25/11/2005 text:"5.1.3" shift:(36,-8)
at: 10/01/2006 text:"5.1.5" shift:(36,1)
at: 25/01/2007 text:"5.1.15" shift:(40,-3)
at: 24/09/2007 text:"5.1.22 RC" shift:(49,-3)
at: 29/01/2008 text:"5.1.23" shift:(40,-3)
at: 14/11/2008 text:"5.1.30 GA" shift:(49,-5)
at: 19/01/2009 text:"5.1.31" shift:(40,0)
at: 15/01/2010 text:"5.1.43" shift:(40,-3)
at: 07/02/2011 text:"5.1.55" shift:(40,-3)
at: 10/01/2012 text:"5.1.61" shift:(40,-3)
##################################################
# 5.5 filled bar #
##################################################
bar:5.5 width:40 from:07/12/2009 till:$now color:col5.1 mark:(line,col5.1)
##################################################
# 5.5 line for all other versions #
##################################################
bar:5.5 mark:(line,col2.0-l2)
at: 04/01/2010 shift:(0,-15) # 5.5.1
at: 12/02/2010 shift:(0,-15) # 5.5.2
at: 24/03/2010 shift:(0,-15) # 5.5.3
at: 09/04/2010 shift:(0,-15) # 5.5.4
at: 06/07/2010 shift:(0,-15) # 5.5.5
at: 13/09/2010 shift:(0,-15) # 5.5.6
at: 14/10/2010 shift:(0,-15) # 5.5.7
at: 12/03/2010 shift:(0,-15) # 5.5.8
at: 07/02/2011 shift:(0,-15) # 5.5.9
at: 15/03/2011 shift:(0,-15) # 5.5.10
at: 07/04/2011 shift:(0,-15) # 5.5.11
at: 05/05/2011 shift:(0,-15) # 5.5.12
at: 31/05/2011 shift:(0,-15) # 5.5.13
at: 05/07/2011 shift:(0,-15) # 5.5.14
at: 28/07/2011 shift:(0,-15) # 5.5.15
at: 15/09/2011 shift:(0,-15) # 5.5.16
at: 19/10/2011 shift:(0,-15) # 5.5.17
at: 16/11/2011 shift:(0,-15) # 5.5.18
at: 08/12/2011 shift:(0,-15) # 5.5.19
at: 10/01/2012 shift:(0,-15) # 5.5.20
at: 17/02/2012 shift:(0,-15) # 5.5.21
at: 21/03/2012 shift:(0,-15) # 5.5.22
at: 12/04/2012 shift:(0,-15) # 5.5.23
at: 07/05/2012 shift:(0,-15) # 5.5.24
at: 30/05/2012 shift:(0,-15) # 5.5.25
at: 05/07/2012 shift:(0,-15) # 5.5.25a
at: 02/08/2012 shift:(0,-15) # 5.5.27
at: 28/09/2012 shift:(0,-15) # 5.5.28
##################################################
# 5.5 line & text for first version every year #
##################################################
bar:5.5 mark:(line,col2.0-l1) align:center fontsize:S textcolor:blue
at: 07/12/2009 text:"5.5.0 M2" shift:(45,-3)
at: 24/03/2010 text:"5.5.3 M3" shift:(45,-3)
at: 13/09/2010 text:"5.5.6 RC" shift:(45,-3)
at: 03/12/2010 text:"5.5.8 GA" shift:(45,-3)
at: 07/02/2011 text:"5.5.9" shift:(36,0)
at: 10/01/2012 text:"5.5.20" shift:(40,-3)
# 5.6 filled bar #
##################################################
bar:5.6 width:40 from:11/04/2011 till:$now color:col5.1 mark:(line,col5.1)
##################################################
# 5.6 line for all other versions #
##################################################
bar:5.6 mark:(line,col2.0-l2)
at: 11/04/2011 shift:(0,-15) # 5.6.2
at: 03/10/2011 shift:(0,-15) # 5.6.3
at: 20/12/2011 shift:(0,-15) # 5.6.4
at: 10/04/2012 shift:(0,-15) # 5.6.5
at: 07/08/2012 shift:(0,-15) # 5.6.6
at: 29/09/2012 shift:(0,-15) # 5.6.7
at: 07/11/2012 shift:(0,-15) # 5.6.8
at: 11/12/2012 shift:(0,-15) # 5.6.9
at: 05/02/2013 shift:(0,-15) # 5.6.10
at: 05/04/2013 shift:(0,-15) # 5.6.11
##################################################
# 5.6 line & text for first version every year #
##################################################
bar:5.6 mark:(line,col2.0-l1) align:center fontsize:S textcolor:blue
at: 11/04/2011 text:"5.6.2 M5" shift:(45,-3)
at: 04/10/2012 text:"5.6.5 M8" shift:(45,-3)

</timeline> [9][10][11][12][13][14][15]

  • Версия для 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.
  • Версия 5.6: в разработке (последний релиз — 5.6.50 от 19.10.2020).[16]
  • Версия 5.7: в разработке (последний релиз — 5.7.32 от 19.10.2020).[17]

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 содержит следующие нововведения[18][19].

  • Сегментирование — возможность разбить одну большую таблицу на несколько частей, размещенных в разных файловых системах, основываясь на определённой пользователем функции. При определённых условиях это может дать серьёзное увеличение производительности и, кроме того, облегчает масштабирование таблиц.
  • Изменено поведение ряда операторов, для обеспечения большей совместимости со стандартом SQL2003.
  • Построчная репликация (Шаблон:Lang-en), при которой в бинарный лог будет записываться только информация о реально изменённых строках таблицы вместо оригинального (и, возможно, медленного) текста запроса. Построчную репликацию можно использовать только для определённых типов sql-запросов, в терминах MySQL — смешанная репликация (Шаблон:Lang-en).
  • Встроенный планировщик периодически запускаемых работ. По синтаксису добавление задачи похоже на добавление триггера к таблице, по идеологии — на 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) — расширенная версия хранилища MyISAM, с добавлением средств сохранения целостности данных после краха.

Основные достоинства Maria[20]:

  • В случае краха производится откат результатов выполнения текущей операции или возврат в состояние до команды 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 на процессорах с большим количеством ядер.

MySQL 6.0

Версия MySQL 6.0 была заморожена на стадии альфа-тестирования. Первоначально было принято решение о создании версии 5.2, вскоре эта версия была переименована в 6.0. Однако позже информация о MySQL 6.0 исчезла с сайта, а разработчики сосредоточились на версии 5.5 и следующей за ней версии 5.6.

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

MySQL 5.7

Первая версия ветки MySQL 5.7.1 анонсирована 23 апреля 2013. Версия MySQL 5.7.8 адаптирована для Debian 8 и Ubuntu 15.04. Последний релиз — 5.7.32 от 19.10.2020.[17]

MySQL 8.0

Версия 8.0.0 была выпущена 12.09.2016, но официально пригодной к повсеместному использованию была версия 8.0.11, выпущенная 19.04.2018. Последняя версия — 8.0.33 (релиз от 18.04.2023)[21]

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

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

Максимальный размер таблиц в MySQL 3.22 — до 4 гигабайт, в последующих версиях ограничений нет.

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

В отличие от MyISAM, в InnoDB имеется значительное ограничение на количество столбцов, которое можно добавить в одну таблицу. Размер страницы памяти по умолчанию составляет 16 килобайт, из которых под данные отведено 8123 байта. Размер указателя на динамические поля составляет 20 байт. Таким образом, в случае использования динамического формата строки (ROW_FORMAT=DYNAMIC), одна таблица может вместить максимум 409 столбцов типа blob или text.

Локализация

Начиная с версии 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 'utf8mb4'

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

Проблема с Юникодом

MySQL не позволяет корректно применять регулярные выражения (операторы REGEXP и RLIKE) на строках в многобайтовых кодировках, например, для Юникода (UTF-8)[22]. При необходимости таких операций приходится переходить на однобайтовые кодировки, например русскую Win-1251 или KOI-8.

Примечания

Шаблон:Примечания

Литература

Ссылки

Шаблон:MySQL Шаблон:СУБД Шаблон:Databases Шаблон:Sun Microsystems