MySQL

Поделись знанием:
Перейти к: навигация, поиск
MySQL
Тип

реляционная СУБД

Разработчик

MySQL AB (до 2008),
Sun Microsystems (2008-2010),
Oracle (с 2010)

Тестовая версия

5.7.9 GA[1] (21 октября 2015)

К:Википедия:Статьи без изображений (тип: не указан)

MySQL (МФА: [maɪ ˌɛskjuːˈɛl])[2] — свободная реляционная система управления базами данных. Разработку и поддержку 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 млрд долларов[3], 27 января 2010 года Oracle приобрела Sun Microsystems за 7,4 млрд долларов[4] и включила MySQL в свою линейку СУБД[5].

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





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

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

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

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

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

Платформы

MySQL портирована на большое количество платформ: AIX, BSDi, FreeBSD, HP-UX, Linux, Mac OS X, 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К:Википедия:Статьи без источников (тип: не указан)[источник не указан 4349 дней] для языков Delphi, C, C++, Эйфель, Java, Лисп, Perl, PHP, Python, Ruby, Smalltalk, Компонентный Паскаль и Tcl, библиотеки для языков платформы .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]

  • Первый внутренний выпуск MySQL состоялся 23 мая 1995 года К:Википедия:Статьи без источников (тип: не указан)[источник не указан 5261 день].
  • Версия для 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.6 m9 7 августа 2012).

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

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

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

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

Стабильный релиз ветки MySQL 5.6 анонсирован 5 февраля 2013.

MySQL 5.7

Первая версия ветки MySQL 5.7.1 анонсирована 23 апреля 2013. Версия MySQL 5.7.8 адаптирована для Debian 8 и Ubuntu 15.04.

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

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

Максимальный размер таблиц в 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 'utf8'

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

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

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

См. также

Напишите отзыв о статье "MySQL"

Примечания

  1. [dev.mysql.com/doc/relnotes/mysql/5.7/en/news-5-7-9.html Changes in MySQL 5.7.9 (2015-10-21, General Availability)]
  2. [dev.mysql.com/doc/refman/5.6/en/what-is-mysql.html 1.3.1. What is MySQL?] (англ.). MySQL 5.6 Reference Manual. Oracle. Проверено 16 марта 2013. [www.webcitation.org/6FHBVAHok Архивировано из первоисточника 21 марта 2013].
  3. [blogs.mysql.com/kaj/2008/01/16/sun-acquires-mysql/ MySQL :: Observations by Kaj Arnö @Sun]  (англ.)
  4. [web.archive.org/web/20090422033454/www.sun.com/aboutsun/pr/2009-04/sunflash.20090420.1.xml Oracle to Buy Sun]. Проверено 24 апреля 2013.
  5. [www.oracle.com/us/corporate/press/044428 Oracle завершила поглощение Sun]  (англ.)
  6. MySQL. Руководство администратора = MySQL. Administrator's Guide. — М.: Издательский дом «Вильямс», 2005. — С. 624. — ISBN 5-8459-0805-1.
  7. [dev.mysql.com/doc/refman/6.0/en/history.html История MySQL  (англ.)]
  8. [www.mysql.com/about/legal/licensing/foss-exception/ FOSS License Exception]
  9. [dev.mysql.com/doc/refman/4.1/en/news-3-23-x.html B.3. Changes in Release 3.23.x (Lifecycle Support Ended)]. Oracle. Проверено 24 августа 2010. [www.webcitation.org/6FdLPXRlI Архивировано из первоисточника 4 апреля 2013].
  10. [dev.mysql.com/doc/refman/4.1/en/news-4-0-x.html B.2. Changes in Release 4.0.x (Lifecycle Support Ended)]. Oracle. Проверено 24 августа 2010. [www.webcitation.org/6FdLQ9pBG Архивировано из первоисточника 4 апреля 2013].
  11. [dev.mysql.com/doc/refman/4.1/en/news-4-1-x.html B.1. Changes in Release 4.1.x (Lifecycle Support Ended)]. Oracle. Проверено 24 августа 2010. [www.webcitation.org/6FdLQjpUj Архивировано из первоисточника 4 апреля 2013].
  12. [dev.mysql.com/doc/refman/5.0/en/news-5-0-x.html#news-5-0-x C.1. Changes in Release 5.0.x (Lifecycle Support Ended)]. Oracle. Проверено 24 августа 2010. [www.webcitation.org/6FdLRCmfT Архивировано из первоисточника 4 апреля 2013].
  13. [dev.mysql.com/doc/refman/5.1/en/news-5-1-x.html#news-5-1-x C.1. Changes in Release 5.1.x (Production)]. Oracle. Проверено 24 августа 2010. [www.webcitation.org/6FdLRg6Dh Архивировано из первоисточника 4 апреля 2013].
  14. [dev.mysql.com/doc/refman/5.5/en/news-5-5-x.html#news-5-5-x C.1. Changes in Release 5.5.x (Production)]. Oracle. Проверено 24 августа 2010. [www.webcitation.org/6FdLSBpo4 Архивировано из первоисточника 4 апреля 2013].
  15. [dev.mysql.com/doc/refman/5.6/en/news-5-6-x.html#news-5-6-x C.1. Changes in Release 5.6.x (Development)]. Oracle. Проверено 24 августа 2010. [www.webcitation.org/6FdLSgvt7 Архивировано из первоисточника 4 апреля 2013].
  16. [dev.mysql.com/doc/refman/5.1/en/news-5-1-x.html Нововведения MySQL 5.1]
  17. [www.opennet.ru/opennews/art.shtml?num=19115 Обзор новшеств MySQL 5.1 на русском языке]
  18. [www.opennet.ru/opennews/art.shtml?num=13934 Обзор возможностей хранилища Maria на opennet.ru]
  19. [dev.mysql.com/doc/refman/5.7/en/regexp.html «The REGEXP and RLIKE operators work in byte-wise fashion, so they are not multi-byte safe and may produce unexpected results with multi-byte character sets.»]

Литература

Ссылки

  • [mysql.com om] — официальный сайт MySQL  (англ.)
  • [dev.mysql.com/doc/ Документация на сайте разработчиков MySQL]  (англ.)
  • [phpclub.ru/mysql/doc/ Перевод стандарта MySQL версии 5.0.3-alpha]  (рус.)
  • MySQL в каталоге ссылок Open Directory Project (dmoz).

Отрывок, характеризующий MySQL

– Мне просить государя! – сказал Денисов голосом, которому он хотел придать прежнюю энергию и горячность, но который звучал бесполезной раздражительностью. – О чем? Ежели бы я был разбойник, я бы просил милости, а то я сужусь за то, что вывожу на чистую воду разбойников. Пускай судят, я никого не боюсь: я честно служил царю, отечеству и не крал! И меня разжаловать, и… Слушай, я так прямо и пишу им, вот я пишу: «ежели бы я был казнокрад…
– Ловко написано, что и говорить, – сказал Тушин. Да не в том дело, Василий Дмитрич, – он тоже обратился к Ростову, – покориться надо, а вот Василий Дмитрич не хочет. Ведь аудитор говорил вам, что дело ваше плохо.
– Ну пускай будет плохо, – сказал Денисов. – Вам написал аудитор просьбу, – продолжал Тушин, – и надо подписать, да вот с ними и отправить. У них верно (он указал на Ростова) и рука в штабе есть. Уже лучше случая не найдете.
– Да ведь я сказал, что подличать не стану, – перебил Денисов и опять продолжал чтение своей бумаги.
Ростов не смел уговаривать Денисова, хотя он инстинктом чувствовал, что путь, предлагаемый Тушиным и другими офицерами, был самый верный, и хотя он считал бы себя счастливым, ежели бы мог оказать помощь Денисову: он знал непреклонность воли Денисова и его правдивую горячность.
Когда кончилось чтение ядовитых бумаг Денисова, продолжавшееся более часа, Ростов ничего не сказал, и в самом грустном расположении духа, в обществе опять собравшихся около него госпитальных товарищей Денисова, провел остальную часть дня, рассказывая про то, что он знал, и слушая рассказы других. Денисов мрачно молчал в продолжение всего вечера.
Поздно вечером Ростов собрался уезжать и спросил Денисова, не будет ли каких поручений?
– Да, постой, – сказал Денисов, оглянулся на офицеров и, достав из под подушки свои бумаги, пошел к окну, на котором у него стояла чернильница, и сел писать.
– Видно плетью обуха не пег'ешибешь, – сказал он, отходя от окна и подавая Ростову большой конверт. – Это была просьба на имя государя, составленная аудитором, в которой Денисов, ничего не упоминая о винах провиантского ведомства, просил только о помиловании.
– Передай, видно… – Он не договорил и улыбнулся болезненно фальшивой улыбкой.


Вернувшись в полк и передав командиру, в каком положении находилось дело Денисова, Ростов с письмом к государю поехал в Тильзит.
13 го июня, французский и русский императоры съехались в Тильзите. Борис Друбецкой просил важное лицо, при котором он состоял, о том, чтобы быть причислену к свите, назначенной состоять в Тильзите.
– Je voudrais voir le grand homme, [Я желал бы видеть великого человека,] – сказал он, говоря про Наполеона, которого он до сих пор всегда, как и все, называл Буонапарте.
– Vous parlez de Buonaparte? [Вы говорите про Буонапарта?] – сказал ему улыбаясь генерал.
Борис вопросительно посмотрел на своего генерала и тотчас же понял, что это было шуточное испытание.
– Mon prince, je parle de l'empereur Napoleon, [Князь, я говорю об императоре Наполеоне,] – отвечал он. Генерал с улыбкой потрепал его по плечу.
– Ты далеко пойдешь, – сказал он ему и взял с собою.
Борис в числе немногих был на Немане в день свидания императоров; он видел плоты с вензелями, проезд Наполеона по тому берегу мимо французской гвардии, видел задумчивое лицо императора Александра, в то время как он молча сидел в корчме на берегу Немана, ожидая прибытия Наполеона; видел, как оба императора сели в лодки и как Наполеон, приставши прежде к плоту, быстрыми шагами пошел вперед и, встречая Александра, подал ему руку, и как оба скрылись в павильоне. Со времени своего вступления в высшие миры, Борис сделал себе привычку внимательно наблюдать то, что происходило вокруг него и записывать. Во время свидания в Тильзите он расспрашивал об именах тех лиц, которые приехали с Наполеоном, о мундирах, которые были на них надеты, и внимательно прислушивался к словам, которые были сказаны важными лицами. В то самое время, как императоры вошли в павильон, он посмотрел на часы и не забыл посмотреть опять в то время, когда Александр вышел из павильона. Свидание продолжалось час и пятьдесят три минуты: он так и записал это в тот вечер в числе других фактов, которые, он полагал, имели историческое значение. Так как свита императора была очень небольшая, то для человека, дорожащего успехом по службе, находиться в Тильзите во время свидания императоров было делом очень важным, и Борис, попав в Тильзит, чувствовал, что с этого времени положение его совершенно утвердилось. Его не только знали, но к нему пригляделись и привыкли. Два раза он исполнял поручения к самому государю, так что государь знал его в лицо, и все приближенные не только не дичились его, как прежде, считая за новое лицо, но удивились бы, ежели бы его не было.
Борис жил с другим адъютантом, польским графом Жилинским. Жилинский, воспитанный в Париже поляк, был богат, страстно любил французов, и почти каждый день во время пребывания в Тильзите, к Жилинскому и Борису собирались на обеды и завтраки французские офицеры из гвардии и главного французского штаба.
24 го июня вечером, граф Жилинский, сожитель Бориса, устроил для своих знакомых французов ужин. На ужине этом был почетный гость, один адъютант Наполеона, несколько офицеров французской гвардии и молодой мальчик старой аристократической французской фамилии, паж Наполеона. В этот самый день Ростов, пользуясь темнотой, чтобы не быть узнанным, в статском платье, приехал в Тильзит и вошел в квартиру Жилинского и Бориса.
В Ростове, также как и во всей армии, из которой он приехал, еще далеко не совершился в отношении Наполеона и французов, из врагов сделавшихся друзьями, тот переворот, который произошел в главной квартире и в Борисе. Все еще продолжали в армии испытывать прежнее смешанное чувство злобы, презрения и страха к Бонапарте и французам. Еще недавно Ростов, разговаривая с Платовским казачьим офицером, спорил о том, что ежели бы Наполеон был взят в плен, с ним обратились бы не как с государем, а как с преступником. Еще недавно на дороге, встретившись с французским раненым полковником, Ростов разгорячился, доказывая ему, что не может быть мира между законным государем и преступником Бонапарте. Поэтому Ростова странно поразил в квартире Бориса вид французских офицеров в тех самых мундирах, на которые он привык совсем иначе смотреть из фланкерской цепи. Как только он увидал высунувшегося из двери французского офицера, это чувство войны, враждебности, которое он всегда испытывал при виде неприятеля, вдруг обхватило его. Он остановился на пороге и по русски спросил, тут ли живет Друбецкой. Борис, заслышав чужой голос в передней, вышел к нему навстречу. Лицо его в первую минуту, когда он узнал Ростова, выразило досаду.
– Ах это ты, очень рад, очень рад тебя видеть, – сказал он однако, улыбаясь и подвигаясь к нему. Но Ростов заметил первое его движение.
– Я не во время кажется, – сказал он, – я бы не приехал, но мне дело есть, – сказал он холодно…
– Нет, я только удивляюсь, как ты из полка приехал. – «Dans un moment je suis a vous», [Сию минуту я к твоим услугам,] – обратился он на голос звавшего его.
– Я вижу, что я не во время, – повторил Ростов.
Выражение досады уже исчезло на лице Бориса; видимо обдумав и решив, что ему делать, он с особенным спокойствием взял его за обе руки и повел в соседнюю комнату. Глаза Бориса, спокойно и твердо глядевшие на Ростова, были как будто застланы чем то, как будто какая то заслонка – синие очки общежития – были надеты на них. Так казалось Ростову.
– Ах полно, пожалуйста, можешь ли ты быть не во время, – сказал Борис. – Борис ввел его в комнату, где был накрыт ужин, познакомил с гостями, назвав его и объяснив, что он был не статский, но гусарский офицер, его старый приятель. – Граф Жилинский, le comte N.N., le capitaine S.S., [граф Н.Н., капитан С.С.] – называл он гостей. Ростов нахмуренно глядел на французов, неохотно раскланивался и молчал.
Жилинский, видимо, не радостно принял это новое русское лицо в свой кружок и ничего не сказал Ростову. Борис, казалось, не замечал происшедшего стеснения от нового лица и с тем же приятным спокойствием и застланностью в глазах, с которыми он встретил Ростова, старался оживить разговор. Один из французов обратился с обыкновенной французской учтивостью к упорно молчавшему Ростову и сказал ему, что вероятно для того, чтобы увидать императора, он приехал в Тильзит.
– Нет, у меня есть дело, – коротко ответил Ростов.
Ростов сделался не в духе тотчас же после того, как он заметил неудовольствие на лице Бориса, и, как всегда бывает с людьми, которые не в духе, ему казалось, что все неприязненно смотрят на него и что всем он мешает. И действительно он мешал всем и один оставался вне вновь завязавшегося общего разговора. «И зачем он сидит тут?» говорили взгляды, которые бросали на него гости. Он встал и подошел к Борису.
– Однако я тебя стесняю, – сказал он ему тихо, – пойдем, поговорим о деле, и я уйду.
– Да нет, нисколько, сказал Борис. А ежели ты устал, пойдем в мою комнатку и ложись отдохни.
– И в самом деле…
Они вошли в маленькую комнатку, где спал Борис. Ростов, не садясь, тотчас же с раздраженьем – как будто Борис был в чем нибудь виноват перед ним – начал ему рассказывать дело Денисова, спрашивая, хочет ли и может ли он просить о Денисове через своего генерала у государя и через него передать письмо. Когда они остались вдвоем, Ростов в первый раз убедился, что ему неловко было смотреть в глаза Борису. Борис заложив ногу на ногу и поглаживая левой рукой тонкие пальцы правой руки, слушал Ростова, как слушает генерал доклад подчиненного, то глядя в сторону, то с тою же застланностию во взгляде прямо глядя в глаза Ростову. Ростову всякий раз при этом становилось неловко и он опускал глаза.
– Я слыхал про такого рода дела и знаю, что Государь очень строг в этих случаях. Я думаю, надо бы не доводить до Его Величества. По моему, лучше бы прямо просить корпусного командира… Но вообще я думаю…
– Так ты ничего не хочешь сделать, так и скажи! – закричал почти Ростов, не глядя в глаза Борису.
Борис улыбнулся: – Напротив, я сделаю, что могу, только я думал…
В это время в двери послышался голос Жилинского, звавший Бориса.
– Ну иди, иди, иди… – сказал Ростов и отказавшись от ужина, и оставшись один в маленькой комнатке, он долго ходил в ней взад и вперед, и слушал веселый французский говор из соседней комнаты.


Ростов приехал в Тильзит в день, менее всего удобный для ходатайства за Денисова. Самому ему нельзя было итти к дежурному генералу, так как он был во фраке и без разрешения начальства приехал в Тильзит, а Борис, ежели даже и хотел, не мог сделать этого на другой день после приезда Ростова. В этот день, 27 го июня, были подписаны первые условия мира. Императоры поменялись орденами: Александр получил Почетного легиона, а Наполеон Андрея 1 й степени, и в этот день был назначен обед Преображенскому батальону, который давал ему батальон французской гвардии. Государи должны были присутствовать на этом банкете.
Ростову было так неловко и неприятно с Борисом, что, когда после ужина Борис заглянул к нему, он притворился спящим и на другой день рано утром, стараясь не видеть его, ушел из дома. Во фраке и круглой шляпе Николай бродил по городу, разглядывая французов и их мундиры, разглядывая улицы и дома, где жили русский и французский императоры. На площади он видел расставляемые столы и приготовления к обеду, на улицах видел перекинутые драпировки с знаменами русских и французских цветов и огромные вензеля А. и N. В окнах домов были тоже знамена и вензеля.
«Борис не хочет помочь мне, да и я не хочу обращаться к нему. Это дело решенное – думал Николай – между нами всё кончено, но я не уеду отсюда, не сделав всё, что могу для Денисова и главное не передав письма государю. Государю?!… Он тут!» думал Ростов, подходя невольно опять к дому, занимаемому Александром.
У дома этого стояли верховые лошади и съезжалась свита, видимо приготовляясь к выезду государя.
«Всякую минуту я могу увидать его, – думал Ростов. Если бы только я мог прямо передать ему письмо и сказать всё, неужели меня бы арестовали за фрак? Не может быть! Он бы понял, на чьей стороне справедливость. Он всё понимает, всё знает. Кто же может быть справедливее и великодушнее его? Ну, да ежели бы меня и арестовали бы за то, что я здесь, что ж за беда?» думал он, глядя на офицера, всходившего в дом, занимаемый государем. «Ведь вот всходят же. – Э! всё вздор. Пойду и подам сам письмо государю: тем хуже будет для Друбецкого, который довел меня до этого». И вдруг, с решительностью, которой он сам не ждал от себя, Ростов, ощупав письмо в кармане, пошел прямо к дому, занимаемому государем.
«Нет, теперь уже не упущу случая, как после Аустерлица, думал он, ожидая всякую секунду встретить государя и чувствуя прилив крови к сердцу при этой мысли. Упаду в ноги и буду просить его. Он поднимет, выслушает и еще поблагодарит меня». «Я счастлив, когда могу сделать добро, но исправить несправедливость есть величайшее счастье», воображал Ростов слова, которые скажет ему государь. И он пошел мимо любопытно смотревших на него, на крыльцо занимаемого государем дома.
С крыльца широкая лестница вела прямо наверх; направо видна была затворенная дверь. Внизу под лестницей была дверь в нижний этаж.
– Кого вам? – спросил кто то.
– Подать письмо, просьбу его величеству, – сказал Николай с дрожанием голоса.
– Просьба – к дежурному, пожалуйте сюда (ему указали на дверь внизу). Только не примут.
Услыхав этот равнодушный голос, Ростов испугался того, что он делал; мысль встретить всякую минуту государя так соблазнительна и оттого так страшна была для него, что он готов был бежать, но камер фурьер, встретивший его, отворил ему дверь в дежурную и Ростов вошел.
Невысокий полный человек лет 30, в белых панталонах, ботфортах и в одной, видно только что надетой, батистовой рубашке, стоял в этой комнате; камердинер застегивал ему сзади шитые шелком прекрасные новые помочи, которые почему то заметил Ростов. Человек этот разговаривал с кем то бывшим в другой комнате.
– Bien faite et la beaute du diable, [Хорошо сложена и красота молодости,] – говорил этот человек и увидав Ростова перестал говорить и нахмурился.
– Что вам угодно? Просьба?…
– Qu'est ce que c'est? [Что это?] – спросил кто то из другой комнаты.
– Encore un petitionnaire, [Еще один проситель,] – отвечал человек в помочах.
– Скажите ему, что после. Сейчас выйдет, надо ехать.
– После, после, завтра. Поздно…
Ростов повернулся и хотел выйти, но человек в помочах остановил его.
– От кого? Вы кто?
– От майора Денисова, – отвечал Ростов.
– Вы кто? офицер?
– Поручик, граф Ростов.
– Какая смелость! По команде подайте. А сами идите, идите… – И он стал надевать подаваемый камердинером мундир.
Ростов вышел опять в сени и заметил, что на крыльце было уже много офицеров и генералов в полной парадной форме, мимо которых ему надо было пройти.
Проклиная свою смелость, замирая от мысли, что всякую минуту он может встретить государя и при нем быть осрамлен и выслан под арест, понимая вполне всю неприличность своего поступка и раскаиваясь в нем, Ростов, опустив глаза, пробирался вон из дома, окруженного толпой блестящей свиты, когда чей то знакомый голос окликнул его и чья то рука остановила его.
– Вы, батюшка, что тут делаете во фраке? – спросил его басистый голос.
Это был кавалерийский генерал, в эту кампанию заслуживший особенную милость государя, бывший начальник дивизии, в которой служил Ростов.
Ростов испуганно начал оправдываться, но увидав добродушно шутливое лицо генерала, отойдя к стороне, взволнованным голосом передал ему всё дело, прося заступиться за известного генералу Денисова. Генерал выслушав Ростова серьезно покачал головой.
– Жалко, жалко молодца; давай письмо.
Едва Ростов успел передать письмо и рассказать всё дело Денисова, как с лестницы застучали быстрые шаги со шпорами и генерал, отойдя от него, подвинулся к крыльцу. Господа свиты государя сбежали с лестницы и пошли к лошадям. Берейтор Эне, тот самый, который был в Аустерлице, подвел лошадь государя, и на лестнице послышался легкий скрип шагов, которые сейчас узнал Ростов. Забыв опасность быть узнанным, Ростов подвинулся с несколькими любопытными из жителей к самому крыльцу и опять, после двух лет, он увидал те же обожаемые им черты, то же лицо, тот же взгляд, ту же походку, то же соединение величия и кротости… И чувство восторга и любви к государю с прежнею силою воскресло в душе Ростова. Государь в Преображенском мундире, в белых лосинах и высоких ботфортах, с звездой, которую не знал Ростов (это была legion d'honneur) [звезда почетного легиона] вышел на крыльцо, держа шляпу под рукой и надевая перчатку. Он остановился, оглядываясь и всё освещая вокруг себя своим взглядом. Кое кому из генералов он сказал несколько слов. Он узнал тоже бывшего начальника дивизии Ростова, улыбнулся ему и подозвал его к себе.
Вся свита отступила, и Ростов видел, как генерал этот что то довольно долго говорил государю.
Государь сказал ему несколько слов и сделал шаг, чтобы подойти к лошади. Опять толпа свиты и толпа улицы, в которой был Ростов, придвинулись к государю. Остановившись у лошади и взявшись рукою за седло, государь обратился к кавалерийскому генералу и сказал громко, очевидно с желанием, чтобы все слышали его.
– Не могу, генерал, и потому не могу, что закон сильнее меня, – сказал государь и занес ногу в стремя. Генерал почтительно наклонил голову, государь сел и поехал галопом по улице. Ростов, не помня себя от восторга, с толпою побежал за ним.


На площади куда поехал государь, стояли лицом к лицу справа батальон преображенцев, слева батальон французской гвардии в медвежьих шапках.
В то время как государь подъезжал к одному флангу баталионов, сделавших на караул, к противоположному флангу подскакивала другая толпа всадников и впереди их Ростов узнал Наполеона. Это не мог быть никто другой. Он ехал галопом в маленькой шляпе, с Андреевской лентой через плечо, в раскрытом над белым камзолом синем мундире, на необыкновенно породистой арабской серой лошади, на малиновом, золотом шитом, чепраке. Подъехав к Александру, он приподнял шляпу и при этом движении кавалерийский глаз Ростова не мог не заметить, что Наполеон дурно и не твердо сидел на лошади. Батальоны закричали: Ура и Vive l'Empereur! [Да здравствует Император!] Наполеон что то сказал Александру. Оба императора слезли с лошадей и взяли друг друга за руки. На лице Наполеона была неприятно притворная улыбка. Александр с ласковым выражением что то говорил ему.
Ростов не спуская глаз, несмотря на топтание лошадьми французских жандармов, осаживавших толпу, следил за каждым движением императора Александра и Бонапарте. Его, как неожиданность, поразило то, что Александр держал себя как равный с Бонапарте, и что Бонапарте совершенно свободно, как будто эта близость с государем естественна и привычна ему, как равный, обращался с русским царем.
Александр и Наполеон с длинным хвостом свиты подошли к правому флангу Преображенского батальона, прямо на толпу, которая стояла тут. Толпа очутилась неожиданно так близко к императорам, что Ростову, стоявшему в передних рядах ее, стало страшно, как бы его не узнали.
– Sire, je vous demande la permission de donner la legion d'honneur au plus brave de vos soldats, [Государь, я прошу у вас позволенья дать орден Почетного легиона храбрейшему из ваших солдат,] – сказал резкий, точный голос, договаривающий каждую букву. Это говорил малый ростом Бонапарте, снизу прямо глядя в глаза Александру. Александр внимательно слушал то, что ему говорили, и наклонив голову, приятно улыбнулся.
– A celui qui s'est le plus vaillament conduit dans cette derieniere guerre, [Тому, кто храбрее всех показал себя во время войны,] – прибавил Наполеон, отчеканивая каждый слог, с возмутительным для Ростова спокойствием и уверенностью оглядывая ряды русских, вытянувшихся перед ним солдат, всё держащих на караул и неподвижно глядящих в лицо своего императора.
– Votre majeste me permettra t elle de demander l'avis du colonel? [Ваше Величество позволит ли мне спросить мнение полковника?] – сказал Александр и сделал несколько поспешных шагов к князю Козловскому, командиру батальона. Бонапарте стал между тем снимать перчатку с белой, маленькой руки и разорвав ее, бросил. Адъютант, сзади торопливо бросившись вперед, поднял ее.
– Кому дать? – не громко, по русски спросил император Александр у Козловского.
– Кому прикажете, ваше величество? – Государь недовольно поморщился и, оглянувшись, сказал:
– Да ведь надобно же отвечать ему.
Козловский с решительным видом оглянулся на ряды и в этом взгляде захватил и Ростова.
«Уж не меня ли?» подумал Ростов.
– Лазарев! – нахмурившись прокомандовал полковник; и первый по ранжиру солдат, Лазарев, бойко вышел вперед.
– Куда же ты? Тут стой! – зашептали голоса на Лазарева, не знавшего куда ему итти. Лазарев остановился, испуганно покосившись на полковника, и лицо его дрогнуло, как это бывает с солдатами, вызываемыми перед фронт.
Наполеон чуть поворотил голову назад и отвел назад свою маленькую пухлую ручку, как будто желая взять что то. Лица его свиты, догадавшись в ту же секунду в чем дело, засуетились, зашептались, передавая что то один другому, и паж, тот самый, которого вчера видел Ростов у Бориса, выбежал вперед и почтительно наклонившись над протянутой рукой и не заставив ее дожидаться ни одной секунды, вложил в нее орден на красной ленте. Наполеон, не глядя, сжал два пальца. Орден очутился между ними. Наполеон подошел к Лазареву, который, выкатывая глаза, упорно продолжал смотреть только на своего государя, и оглянулся на императора Александра, показывая этим, что то, что он делал теперь, он делал для своего союзника. Маленькая белая рука с орденом дотронулась до пуговицы солдата Лазарева. Как будто Наполеон знал, что для того, чтобы навсегда этот солдат был счастлив, награжден и отличен от всех в мире, нужно было только, чтобы его, Наполеонова рука, удостоила дотронуться до груди солдата. Наполеон только прило жил крест к груди Лазарева и, пустив руку, обратился к Александру, как будто он знал, что крест должен прилипнуть к груди Лазарева. Крест действительно прилип.
Русские и французские услужливые руки, мгновенно подхватив крест, прицепили его к мундиру. Лазарев мрачно взглянул на маленького человечка, с белыми руками, который что то сделал над ним, и продолжая неподвижно держать на караул, опять прямо стал глядеть в глаза Александру, как будто он спрашивал Александра: всё ли еще ему стоять, или не прикажут ли ему пройтись теперь, или может быть еще что нибудь сделать? Но ему ничего не приказывали, и он довольно долго оставался в этом неподвижном состоянии.
Государи сели верхами и уехали. Преображенцы, расстроивая ряды, перемешались с французскими гвардейцами и сели за столы, приготовленные для них.
Лазарев сидел на почетном месте; его обнимали, поздравляли и жали ему руки русские и французские офицеры. Толпы офицеров и народа подходили, чтобы только посмотреть на Лазарева. Гул говора русского французского и хохота стоял на площади вокруг столов. Два офицера с раскрасневшимися лицами, веселые и счастливые прошли мимо Ростова.
– Каково, брат, угощенье? Всё на серебре, – сказал один. – Лазарева видел?
– Видел.
– Завтра, говорят, преображенцы их угащивать будут.
– Нет, Лазареву то какое счастье! 10 франков пожизненного пенсиона.
– Вот так шапка, ребята! – кричал преображенец, надевая мохнатую шапку француза.
– Чудо как хорошо, прелесть!
– Ты слышал отзыв? – сказал гвардейский офицер другому. Третьего дня было Napoleon, France, bravoure; [Наполеон, Франция, храбрость;] вчера Alexandre, Russie, grandeur; [Александр, Россия, величие;] один день наш государь дает отзыв, а другой день Наполеон. Завтра государь пошлет Георгия самому храброму из французских гвардейцев. Нельзя же! Должен ответить тем же.
Борис с своим товарищем Жилинским тоже пришел посмотреть на банкет преображенцев. Возвращаясь назад, Борис заметил Ростова, который стоял у угла дома.
– Ростов! здравствуй; мы и не видались, – сказал он ему, и не мог удержаться, чтобы не спросить у него, что с ним сделалось: так странно мрачно и расстроено было лицо Ростова.
– Ничего, ничего, – отвечал Ростов.
– Ты зайдешь?
– Да, зайду.
Ростов долго стоял у угла, издалека глядя на пирующих. В уме его происходила мучительная работа, которую он никак не мог довести до конца. В душе поднимались страшные сомнения. То ему вспоминался Денисов с своим изменившимся выражением, с своей покорностью и весь госпиталь с этими оторванными руками и ногами, с этой грязью и болезнями. Ему так живо казалось, что он теперь чувствует этот больничный запах мертвого тела, что он оглядывался, чтобы понять, откуда мог происходить этот запах. То ему вспоминался этот самодовольный Бонапарте с своей белой ручкой, который был теперь император, которого любит и уважает император Александр. Для чего же оторванные руки, ноги, убитые люди? То вспоминался ему награжденный Лазарев и Денисов, наказанный и непрощенный. Он заставал себя на таких странных мыслях, что пугался их.
Запах еды преображенцев и голод вызвали его из этого состояния: надо было поесть что нибудь, прежде чем уехать. Он пошел к гостинице, которую видел утром. В гостинице он застал так много народу, офицеров, так же как и он приехавших в статских платьях, что он насилу добился обеда. Два офицера одной с ним дивизии присоединились к нему. Разговор естественно зашел о мире. Офицеры, товарищи Ростова, как и большая часть армии, были недовольны миром, заключенным после Фридланда. Говорили, что еще бы подержаться, Наполеон бы пропал, что у него в войсках ни сухарей, ни зарядов уж не было. Николай молча ел и преимущественно пил. Он выпил один две бутылки вина. Внутренняя поднявшаяся в нем работа, не разрешаясь, всё также томила его. Он боялся предаваться своим мыслям и не мог отстать от них. Вдруг на слова одного из офицеров, что обидно смотреть на французов, Ростов начал кричать с горячностью, ничем не оправданною, и потому очень удивившею офицеров.
– И как вы можете судить, что было бы лучше! – закричал он с лицом, вдруг налившимся кровью. – Как вы можете судить о поступках государя, какое мы имеем право рассуждать?! Мы не можем понять ни цели, ни поступков государя!
– Да я ни слова не говорил о государе, – оправдывался офицер, не могший иначе как тем, что Ростов пьян, объяснить себе его вспыльчивости.
Но Ростов не слушал.
– Мы не чиновники дипломатические, а мы солдаты и больше ничего, – продолжал он. – Умирать велят нам – так умирать. А коли наказывают, так значит – виноват; не нам судить. Угодно государю императору признать Бонапарте императором и заключить с ним союз – значит так надо. А то, коли бы мы стали обо всем судить да рассуждать, так этак ничего святого не останется. Этак мы скажем, что ни Бога нет, ничего нет, – ударяя по столу кричал Николай, весьма некстати, по понятиям своих собеседников, но весьма последовательно по ходу своих мыслей.