1 added
1 removed
Original
2026-01-01
Modified
2026-02-21
1
<p><a>#статьи</a></p>
1
<p><a>#статьи</a></p>
2
<ul><li>16 янв 2024</li>
2
<ul><li>16 янв 2024</li>
3
<li>0</li>
3
<li>0</li>
4
</ul><p>Гайд по самой народной базе данных в мире. Да простят нас поклонники синего слона.</p>
4
</ul><p>Гайд по самой народной базе данных в мире. Да простят нас поклонники синего слона.</p>
5
<p>Иллюстрация: Ajmal Ali / Jan Antonin / Unsplash / Annie для Skillbox Media</p>
5
<p>Иллюстрация: Ajmal Ali / Jan Antonin / Unsplash / Annie для Skillbox Media</p>
6
<p>Программист, консультант, специалист по документированию. Легко и доступно рассказывает о сложных вещах в программировании и дизайне.</p>
6
<p>Программист, консультант, специалист по документированию. Легко и доступно рассказывает о сложных вещах в программировании и дизайне.</p>
7
-
<p>MySQL входит в джентльменский набор веб-разработчика наряду с Linux, PHP и веб-сервером Apache. Она простая, удобная в настройке и распространяется по свободной лицензии GNU - то есть её можно бесплатно использовать в своих проектах. Если вы хотите развиваться в веб-р��зработке, то, скорее всего, не раз столкнётесь с MySQL - а потому стоит познакомиться с ней как можно раньше.</p>
7
+
<p>MySQL входит в джентльменский набор веб-разработчика наряду с Linux, PHP и веб-сервером Apache. Она простая, удобная в настройке и распространяется по свободной лицензии GNU - то есть её можно бесплатно использовать в своих проектах. Если вы хотите развиваться в веб-разработке, то, скорее всего, не раз столкнётесь с MySQL - а потому стоит познакомиться с ней как можно раньше.</p>
8
<p>Из этой статьи вы узнаете:</p>
8
<p>Из этой статьи вы узнаете:</p>
9
<ul><li><a>что такое MySQL;</a></li>
9
<ul><li><a>что такое MySQL;</a></li>
10
<li><a>кто ей пользуется;</a></li>
10
<li><a>кто ей пользуется;</a></li>
11
<li><a>как она устроена;</a></li>
11
<li><a>как она устроена;</a></li>
12
<li><a>для чего нужна;</a></li>
12
<li><a>для чего нужна;</a></li>
13
<li><a>в чём её главные плюсы;</a></li>
13
<li><a>в чём её главные плюсы;</a></li>
14
<li><a>как работать с MySQL;</a></li>
14
<li><a>как работать с MySQL;</a></li>
15
<li><a>что почитать по теме.</a></li>
15
<li><a>что почитать по теме.</a></li>
16
</ul><p>MySQL - это система управления базами данных (СУБД). Многие по привычке называют её просто базой данных, но это некорректно - разница между двумя этими понятиями примерно такая же, как между библиотекой и библиотекарем. При этом в роли первой выступают данные, а в роли второго - непосредственно СУБД. Именно она проводит все сложные манипуляции с данными: сортирует, добавляет, удаляет, находит, отображает по запросу пользователя и так далее.</p>
16
</ul><p>MySQL - это система управления базами данных (СУБД). Многие по привычке называют её просто базой данных, но это некорректно - разница между двумя этими понятиями примерно такая же, как между библиотекой и библиотекарем. При этом в роли первой выступают данные, а в роли второго - непосредственно СУБД. Именно она проводит все сложные манипуляции с данными: сортирует, добавляет, удаляет, находит, отображает по запросу пользователя и так далее.</p>
17
<p>Чтобы к данным было удобнее обращаться, MySQL хранит их в виде связанных друг с другом таблиц. Такая модель называется<strong>реляционной</strong>, и она далеко не нова. Первыми её стали использовать банки и госучреждения ещё в 1970-х, чтобы организовать огромные пласты данных в единую систему и ускорить транзакции.</p>
17
<p>Чтобы к данным было удобнее обращаться, MySQL хранит их в виде связанных друг с другом таблиц. Такая модель называется<strong>реляционной</strong>, и она далеко не нова. Первыми её стали использовать банки и госучреждения ещё в 1970-х, чтобы организовать огромные пласты данных в единую систему и ускорить транзакции.</p>
18
<p>Вот упрощённый пример реляционной базы данных для импровизированного онлайн-кинотеатра - есть три отдельных таблицы для фильмов, пользователей и отзывов, которые связаны между собой специальными ключами (столбец ID).</p>
18
<p>Вот упрощённый пример реляционной базы данных для импровизированного онлайн-кинотеатра - есть три отдельных таблицы для фильмов, пользователей и отзывов, которые связаны между собой специальными ключами (столбец ID).</p>
19
<em>Изображение: Skillbox Media</em><p>Сама же MySQL появилась сильно позже, уже в середине 1990-х, в ответ на бурный рост интернета и бум доткомов. Веб-мастерам средней руки и владельцам стартапов не нужны были сложные и дорогущие системы для корпоративных серверов вроде<a>Oracle DB</a>и <a>майкрософтовской SQL Server</a>. Им подавай простую, без излишеств и желательно недорогую систему - как говорится, "воткнул и поехал".</p>
19
<em>Изображение: Skillbox Media</em><p>Сама же MySQL появилась сильно позже, уже в середине 1990-х, в ответ на бурный рост интернета и бум доткомов. Веб-мастерам средней руки и владельцам стартапов не нужны были сложные и дорогущие системы для корпоративных серверов вроде<a>Oracle DB</a>и <a>майкрософтовской SQL Server</a>. Им подавай простую, без излишеств и желательно недорогую систему - как говорится, "воткнул и поехал".</p>
20
<p>И MySQL идеально подходила под этот запрос. Во-первых, она чертовски просто настраивается благодаря большому набору интерфейсных фишек и понятной документации. А во-вторых, с самого начала распространяется под свободной лицензией GNU GPL - то есть её можно использовать абсолютно бесплатно. Правда, только в некоммерческих целях - в противном случае отстегнуть деньги за платную лицензию всё-таки придётся.</p>
20
<p>И MySQL идеально подходила под этот запрос. Во-первых, она чертовски просто настраивается благодаря большому набору интерфейсных фишек и понятной документации. А во-вторых, с самого начала распространяется под свободной лицензией GNU GPL - то есть её можно использовать абсолютно бесплатно. Правда, только в некоммерческих целях - в противном случае отстегнуть деньги за платную лицензию всё-таки придётся.</p>
21
<p>Благодаря своей простоте и гибкости MySQL входит состав многих ready-to-use-сборок для настройки веб-серверов. Например, буква M в названии технологического стека LAMP как раз обозначает MySQL. Причём три другие части набора - Linux, Apache и PHP - могут меняться в зависимости от версии пакета, но именно MySQL является константой.</p>
21
<p>Благодаря своей простоте и гибкости MySQL входит состав многих ready-to-use-сборок для настройки веб-серверов. Например, буква M в названии технологического стека LAMP как раз обозначает MySQL. Причём три другие части набора - Linux, Apache и PHP - могут меняться в зависимости от версии пакета, но именно MySQL является константой.</p>
22
<p>Что касается названия, со словом SQL всё понятно - это название языка для управления реляционными БД. А вот по поводу My есть разные версии:</p>
22
<p>Что касается названия, со словом SQL всё понятно - это название языка для управления реляционными БД. А вот по поводу My есть разные версии:</p>
23
<p>"До конца не ясно, откуда идёт название MySQL. В TcX (компании, где зародилась MySQL. - Ред.) базовый каталог, а также значительное число библиотек и утилит в течение десятка лет имели префикс My. Вместе с тем мою дочь (которая на несколько лет младше) тоже зовут My. Поэтому остаётся тайной, какой из двух источников дал название MySQL".</p>
23
<p>"До конца не ясно, откуда идёт название MySQL. В TcX (компании, где зародилась MySQL. - Ред.) базовый каталог, а также значительное число библиотек и утилит в течение десятка лет имели префикс My. Вместе с тем мою дочь (которая на несколько лет младше) тоже зовут My. Поэтому остаётся тайной, какой из двух источников дал название MySQL".</p>
24
<p><strong>Майкл (Монти) Видениус</strong>, создатель MySQL</p>
24
<p><strong>Майкл (Монти) Видениус</strong>, создатель MySQL</p>
25
<p>Корни всемирно известной СУБД - в Скандинавии. Она разработана Майклом Видениусом и поставлена им на коммерческие рельсы вместе с друзьями из Швеции Дэвидом Аксмарком и Алланом Ларссоном. Совместными усилиями последователи дядюшки Линуса основали в 1995 году компанию MySQL AB, которая и ведала делами проекта.</p>
25
<p>Корни всемирно известной СУБД - в Скандинавии. Она разработана Майклом Видениусом и поставлена им на коммерческие рельсы вместе с друзьями из Швеции Дэвидом Аксмарком и Алланом Ларссоном. Совместными усилиями последователи дядюшки Линуса основали в 1995 году компанию MySQL AB, которая и ведала делами проекта.</p>
26
<p>Свободное плавание продлилось 13 лет: в 2008 году компанию покупает Sun Microsystems, разработчик всемирно известного Java, а двумя годами позже и сама Sun переходит под крыло Oracle. Надо отдать должное оракулам - они не стали отказываться от философии свободного ПО и продолжают развивать продукт совместно с открытым сообществом разработчиков.</p>
26
<p>Свободное плавание продлилось 13 лет: в 2008 году компанию покупает Sun Microsystems, разработчик всемирно известного Java, а двумя годами позже и сама Sun переходит под крыло Oracle. Надо отдать должное оракулам - они не стали отказываться от философии свободного ПО и продолжают развивать продукт совместно с открытым сообществом разработчиков.</p>
27
<p>Сейчас MySQL -<a>в топе</a>самых популярных СУБД в мире, она используется в самых разных компаниях и областях разработки. Вот несколько примеров:</p>
27
<p>Сейчас MySQL -<a>в топе</a>самых популярных СУБД в мире, она используется в самых разных компаниях и областях разработки. Вот несколько примеров:</p>
28
<p><strong>Сайты и веб-приложения</strong></p>
28
<p><strong>Сайты и веб-приложения</strong></p>
29
<p>Блоги, форумы, соцсети, маркетплейсы - миллионы ресурсов используют MySQL для управления данными. Среди всемирно известных представителей: WordPress, Joomla, Drupal, соцсети "Фейсбук"*, X, форумы phpBB и vBulletin, CMS Magento и другие.</p>
29
<p>Блоги, форумы, соцсети, маркетплейсы - миллионы ресурсов используют MySQL для управления данными. Среди всемирно известных представителей: WordPress, Joomla, Drupal, соцсети "Фейсбук"*, X, форумы phpBB и vBulletin, CMS Magento и другие.</p>
30
<p><strong>Стартапы и малый бизнес</strong></p>
30
<p><strong>Стартапы и малый бизнес</strong></p>
31
<p>Для небольших проектов mySQL - настоящая находка. Популярный кейс: обкатать проект на бесплатной версии MySQL, а если дело пойдёт, купить лицензию или переехать на СУБД помощнее.</p>
31
<p>Для небольших проектов mySQL - настоящая находка. Популярный кейс: обкатать проект на бесплатной версии MySQL, а если дело пойдёт, купить лицензию или переехать на СУБД помощнее.</p>
32
<p><strong>Корпоративные системы</strong></p>
32
<p><strong>Корпоративные системы</strong></p>
33
<p>Логично, что MySQL позволяет менеджерить данные не только на веб-ресурсах, но и на предприятиях.</p>
33
<p>Логично, что MySQL позволяет менеджерить данные не только на веб-ресурсах, но и на предприятиях.</p>
34
<p><strong>Научные исследования в области data science и аналитики данных.</strong></p>
34
<p><strong>Научные исследования в области data science и аналитики данных.</strong></p>
35
<p>MySQL позволяет инженерам управлять большими данными, выполнять сложные запросы, анализировать и визуализировать результаты - особенно в сочетании со специальными библиотеками и инструментами.</p>
35
<p>MySQL позволяет инженерам управлять большими данными, выполнять сложные запросы, анализировать и визуализировать результаты - особенно в сочетании со специальными библиотеками и инструментами.</p>
36
<p><strong>Образование</strong></p>
36
<p><strong>Образование</strong></p>
37
<p>Здесь у MySQL целых две ипостаси. Помимо управления данными учащихся образовательных организаций, она используется для обучения студентов основам баз данных.</p>
37
<p>Здесь у MySQL целых две ипостаси. Помимо управления данными учащихся образовательных организаций, она используется для обучения студентов основам баз данных.</p>
38
<p><strong>Онлайн-игры</strong></p>
38
<p><strong>Онлайн-игры</strong></p>
39
<p>MySQL используется для хранения данных о пользователях, сценариях и других аспектах сетевых игр. Её среди прочих используют Minecraft, Counter-Strike и Warcraft III.</p>
39
<p>MySQL используется для хранения данных о пользователях, сценариях и других аспектах сетевых игр. Её среди прочих используют Minecraft, Counter-Strike и Warcraft III.</p>
40
<p>Теперь, когда мы убедились, что знание MySQL - востребованный навык, можно переходить к изучению внутренней кухни этой системы.</p>
40
<p>Теперь, когда мы убедились, что знание MySQL - востребованный навык, можно переходить к изучению внутренней кухни этой системы.</p>
41
<p>В основе MySQL лежит<strong>клиент-серверная архитектура</strong>. Это когда база данных и система управления ею хранятся на сервере, а пользователи подключаются к ней с помощью своих устройств. Например, мы смотрим через мобильные приложения видеоролики на YouTube, которые лежат на гугловских серверах.</p>
41
<p>В основе MySQL лежит<strong>клиент-серверная архитектура</strong>. Это когда база данных и система управления ею хранятся на сервере, а пользователи подключаются к ней с помощью своих устройств. Например, мы смотрим через мобильные приложения видеоролики на YouTube, которые лежат на гугловских серверах.</p>
42
<p>Но с помощью "родной" библиотеки Embedded MySQL можно превратить и во <strong>встраиваемую</strong>СУБД - то есть внедрить сервер прямо в приложение и получить так называемый толстый клиент, в противовес тонкому, который нужен только для получения данных с сервера.</p>
42
<p>Но с помощью "родной" библиотеки Embedded MySQL можно превратить и во <strong>встраиваемую</strong>СУБД - то есть внедрить сервер прямо в приложение и получить так называемый толстый клиент, в противовес тонкому, который нужен только для получения данных с сервера.</p>
43
<p>Давайте разберём, из каких основных компонентов состоит MySQL.</p>
43
<p>Давайте разберём, из каких основных компонентов состоит MySQL.</p>
44
<p><strong>Сервер (MySQL Server).</strong>Это центральная часть MySQL, которая управляет всеми базами данных. Сервер обрабатывает SQL-запросы, принимает, обрабатывает, отправляет данные и обеспечивает взаимодействие с клиентами.</p>
44
<p><strong>Сервер (MySQL Server).</strong>Это центральная часть MySQL, которая управляет всеми базами данных. Сервер обрабатывает SQL-запросы, принимает, обрабатывает, отправляет данные и обеспечивает взаимодействие с клиентами.</p>
45
<p><strong>Хранилище данных (storage engine).</strong>Отвечает за фактическое хранение и организацию данных в таблицах. Когда вы создаёте таблицу в MySQL, вы указываете, какое именно хранилище нужно использовать для этой таблицы.</p>
45
<p><strong>Хранилище данных (storage engine).</strong>Отвечает за фактическое хранение и организацию данных в таблицах. Когда вы создаёте таблицу в MySQL, вы указываете, какое именно хранилище нужно использовать для этой таблицы.</p>
46
<p>Какое хранилище выбрать - зависит от задачи. Одни обеспечивают высокую скорость чтения, но не умеют работать с транзакциями. Другие заточены на моментальный доступ к данным, но при перезапуске сервера эти самые данные теряются. Подробнее об основных типах хранилищ и их назначении можно почитать<a>в статье на OpenNET</a>.</p>
46
<p>Какое хранилище выбрать - зависит от задачи. Одни обеспечивают высокую скорость чтения, но не умеют работать с транзакциями. Другие заточены на моментальный доступ к данным, но при перезапуске сервера эти самые данные теряются. Подробнее об основных типах хранилищ и их назначении можно почитать<a>в статье на OpenNET</a>.</p>
47
<p><strong>Физическая структура данных.</strong>Данные, физически записанные на жёсткий диск сервера. Фотографии, номера телефонов, банковские счета, расположение игроков на карте в онлайн-шутере - всё, с чем имеет дело ваше приложение.</p>
47
<p><strong>Физическая структура данных.</strong>Данные, физически записанные на жёсткий диск сервера. Фотографии, номера телефонов, банковские счета, расположение игроков на карте в онлайн-шутере - всё, с чем имеет дело ваше приложение.</p>
48
<p><strong>Логическая структура.</strong>Табличное представление данных, записанных на диск. Каждая строка таблицы представляет собой запись, а каждый столбец - её атрибут. Помимо этого, у каждой записи есть уникальные идентификаторы, или ключи, - по ним можно легко найти нужные данные и связать их между собой.</p>
48
<p><strong>Логическая структура.</strong>Табличное представление данных, записанных на диск. Каждая строка таблицы представляет собой запись, а каждый столбец - её атрибут. Помимо этого, у каждой записи есть уникальные идентификаторы, или ключи, - по ним можно легко найти нужные данные и связать их между собой.</p>
49
<p><strong>Схемы (database schema).</strong>Это логические структуры, которые описывают организацию таблиц и связей между ними в базе данных. Одна база данных может содержать несколько схем.</p>
49
<p><strong>Схемы (database schema).</strong>Это логические структуры, которые описывают организацию таблиц и связей между ними в базе данных. Одна база данных может содержать несколько схем.</p>
50
Один из возможных вариантов отображения логической схемы MySQL<em>Изображение:<a>shibha20</a>/ GitHub</em><p><strong>Клиенты.</strong>Веб-приложения, приложения на языках программирования (например, Python, Java) или инструменты администрирования, которые отправляют SQL-запросы серверу MySQL для выполнения операций чтения, записи, обновления и удаления данных.</p>
50
Один из возможных вариантов отображения логической схемы MySQL<em>Изображение:<a>shibha20</a>/ GitHub</em><p><strong>Клиенты.</strong>Веб-приложения, приложения на языках программирования (например, Python, Java) или инструменты администрирования, которые отправляют SQL-запросы серверу MySQL для выполнения операций чтения, записи, обновления и удаления данных.</p>
51
<p><strong>SQL.</strong>Это универсальный язык общения с реляционными базами данных. И хотя на чистом SQL не говорит ни одна СУБД, версия языка в MySQL максимально близка к оригиналу. Но, как и в любом диалекте, в нём есть свои особенности.</p>
51
<p><strong>SQL.</strong>Это универсальный язык общения с реляционными базами данных. И хотя на чистом SQL не говорит ни одна СУБД, версия языка в MySQL максимально близка к оригиналу. Но, как и в любом диалекте, в нём есть свои особенности.</p>
52
<p>Давайте для примера напишем код, который создаст в базе данных таблицу с информацией о читателях Skillbox Media:</p>
52
<p>Давайте для примера напишем код, который создаст в базе данных таблицу с информацией о читателях Skillbox Media:</p>
53
CREATE TABLE skillbox_readers ( id INT AUTO_INCREMENT, name VARCHAR(100), email VARCHAR(100), join_date DATE, PRIMARY KEY(id) ); INSERT INTO skillbox_readers (name, email, join_date) VALUES ('Иван Иванов', 'ivanov@example.com', '2024-01-01'), ('Мария Петрова', 'petrova@example.com', '2024-01-02'), ('Алексей Сидоров', 'sidorov@example.com', '2024-01-03');<p>А теперь - отсортируем читателей по дате добавления в базу:</p>
53
CREATE TABLE skillbox_readers ( id INT AUTO_INCREMENT, name VARCHAR(100), email VARCHAR(100), join_date DATE, PRIMARY KEY(id) ); INSERT INTO skillbox_readers (name, email, join_date) VALUES ('Иван Иванов', 'ivanov@example.com', '2024-01-01'), ('Мария Петрова', 'petrova@example.com', '2024-01-02'), ('Алексей Сидоров', 'sidorov@example.com', '2024-01-03');<p>А теперь - отсортируем читателей по дате добавления в базу:</p>
54
SELECT * FROM skillbox_readers ORDER BY join_date ASC;<p><strong>Механизмы безопасности.</strong>MySQL обеспечивает механизмы безопасности для контроля доступа к данным: аутентификацию пользователей, управление привилегиями и шифрование данных.</p>
54
SELECT * FROM skillbox_readers ORDER BY join_date ASC;<p><strong>Механизмы безопасности.</strong>MySQL обеспечивает механизмы безопасности для контроля доступа к данным: аутентификацию пользователей, управление привилегиями и шифрование данных.</p>
55
<p><strong>Бэкапы и восстановление.</strong>MySQL предоставляет инструменты для создания резервных копий данных и их восстановления в случае сбоя. Бэкапы в MySQL бывают двух видов: физические и логические. Первый делает копию всех файлов на диске без табличной структуры, второй - делает полный дамп базы. О преимуществах и недостатках этих подходов можно почитать<a>здесь</a>.</p>
55
<p><strong>Бэкапы и восстановление.</strong>MySQL предоставляет инструменты для создания резервных копий данных и их восстановления в случае сбоя. Бэкапы в MySQL бывают двух видов: физические и логические. Первый делает копию всех файлов на диске без табличной структуры, второй - делает полный дамп базы. О преимуществах и недостатках этих подходов можно почитать<a>здесь</a>.</p>
56
<p>Как мы уже успели выяснить, главная задача MySQL - эффективно хранить, управлять и извлекать данные по запросу. Теперь давайте разберёмся, что это означает, на конкретных примерах.</p>
56
<p>Как мы уже успели выяснить, главная задача MySQL - эффективно хранить, управлять и извлекать данные по запросу. Теперь давайте разберёмся, что это означает, на конкретных примерах.</p>
57
<p>Для этого в MySQL есть мощная графическая среда Workbench. В ней есть все нужные инструменты работы с базами данных: от создания до эксплуатации. Визуализировать модель базы данных? Пожалуйста! Вручную построить связи между таблицами? Не вопрос. Редактировать данные в них, как в каком-нибудь Excel? Раз плюнуть. Про удобный редактор SQL-запросов и говорить не стоит.</p>
57
<p>Для этого в MySQL есть мощная графическая среда Workbench. В ней есть все нужные инструменты работы с базами данных: от создания до эксплуатации. Визуализировать модель базы данных? Пожалуйста! Вручную построить связи между таблицами? Не вопрос. Редактировать данные в них, как в каком-нибудь Excel? Раз плюнуть. Про удобный редактор SQL-запросов и говорить не стоит.</p>
58
<em>Скриншот: MySQL / Skillbox Media</em><p>Можно администрировать базы данных и через браузер. Для этого существует опенсорсное приложение phpMyAdmin. Оно не такое красивое, как Workbench, зато умеет запускаться прямо на сервере - это облегчает управление сайтом и помогает выкрутиться, если хостинг запрещает удалённый доступ к серверу. Пощупать сервис и оценить его фишки можно на <a>официальном демосервере</a>.</p>
58
<em>Скриншот: MySQL / Skillbox Media</em><p>Можно администрировать базы данных и через браузер. Для этого существует опенсорсное приложение phpMyAdmin. Оно не такое красивое, как Workbench, зато умеет запускаться прямо на сервере - это облегчает управление сайтом и помогает выкрутиться, если хостинг запрещает удалённый доступ к серверу. Пощупать сервис и оценить его фишки можно на <a>официальном демосервере</a>.</p>
59
<p>Конечно, есть масса других инструментов и способов администрирования - но для базового знакомства пока хватит и этого :)</p>
59
<p>Конечно, есть масса других инструментов и способов администрирования - но для базового знакомства пока хватит и этого :)</p>
60
<p>В MySQL оно реализовано с помощью механизмов репликации и шардинга.</p>
60
<p>В MySQL оно реализовано с помощью механизмов репликации и шардинга.</p>
61
<p><strong>Репликация.</strong>В этом случае данные копируются с главного мастер-сервера на несколько побочных (называемых слейвами). Мастер отправляет изменения в своей базе данных, а слейвы повторяют эти изменения и создают копию данных мастера. Это обеспечивает отказоустойчивость - если главный сервер вдруг откажет и уедет на ремонт, его работу подхватят остальные.</p>
61
<p><strong>Репликация.</strong>В этом случае данные копируются с главного мастер-сервера на несколько побочных (называемых слейвами). Мастер отправляет изменения в своей базе данных, а слейвы повторяют эти изменения и создают копию данных мастера. Это обеспечивает отказоустойчивость - если главный сервер вдруг откажет и уедет на ремонт, его работу подхватят остальные.</p>
62
<p><strong>Шардинг.</strong>Процесс, при котором база разбивается на несколько более мелких фрагментов, называемых шардами. Каждый шард обрабатывается отдельным сервером, что распределяет нагрузку и повышает производительность.</p>
62
<p><strong>Шардинг.</strong>Процесс, при котором база разбивается на несколько более мелких фрагментов, называемых шардами. Каждый шард обрабатывается отдельным сервером, что распределяет нагрузку и повышает производительность.</p>
63
<p>Одна из важнейших миссий любой СУБД - сделать так, чтобы пользователи могли работать с файлами, не мешая друг другу. Представьте, что вы с коллегой одновременно внесли изменения в "эксельку", лежащую где-то на сервере. Причём в одни и те же ячейки. Чьи изменения запишутся? Большой вопрос.</p>
63
<p>Одна из важнейших миссий любой СУБД - сделать так, чтобы пользователи могли работать с файлами, не мешая друг другу. Представьте, что вы с коллегой одновременно внесли изменения в "эксельку", лежащую где-то на сервере. Причём в одни и те же ячейки. Чьи изменения запишутся? Большой вопрос.</p>
64
<p>Чтобы таких вопросов не возникало, в MySQL существует правило - при обращении пользователей к одним и тем же данным формируется очередь - вы не сможете внести изменения, пока не будет обработан предыдущий запрос.</p>
64
<p>Чтобы таких вопросов не возникало, в MySQL существует правило - при обращении пользователей к одним и тем же данным формируется очередь - вы не сможете внести изменения, пока не будет обработан предыдущий запрос.</p>
65
<p>Есть и более тривиальные правила - например, у каждого пользователя должны быть логин и пароль (это называется аутентификацией), а также права доступа к определённым операциям (это называется авторизацией). Управлять ролями и привилегиями для групп пользователей можно из панели администратора.</p>
65
<p>Есть и более тривиальные правила - например, у каждого пользователя должны быть логин и пароль (это называется аутентификацией), а также права доступа к определённым операциям (это называется авторизацией). Управлять ролями и привилегиями для групп пользователей можно из панели администратора.</p>
66
<p>В MySQL есть утилиты, которые помогают мониторить производительность, наблюдать за активностью и выявлять проблемы. Например, в уже упомянутом MySQL Workbench можно отслеживать активность запросов, использование ресурсов и многое другое в удобном графическом интерфейсе.</p>
66
<p>В MySQL есть утилиты, которые помогают мониторить производительность, наблюдать за активностью и выявлять проблемы. Например, в уже упомянутом MySQL Workbench можно отслеживать активность запросов, использование ресурсов и многое другое в удобном графическом интерфейсе.</p>
67
<p>Вот ещё несколько встроенных инструментов:</p>
67
<p>Вот ещё несколько встроенных инструментов:</p>
68
<ul><li>Системные переменные, которые можно настроить для оптимизации производительности. Например, команда SHOW VARIABLES отображает текущие значения системных переменных.</li>
68
<ul><li>Системные переменные, которые можно настроить для оптимизации производительности. Например, команда SHOW VARIABLES отображает текущие значения системных переменных.</li>
69
<li>Различные виды логирования (error log, general query log, slow query log) позволяют отслеживать ошибки, запросы и медленные запросы.</li>
69
<li>Различные виды логирования (error log, general query log, slow query log) позволяют отслеживать ошибки, запросы и медленные запросы.</li>
70
<li>Системы управления версиями Liquibase или Flyway помогают контролировать изменения схемы базы данных.</li>
70
<li>Системы управления версиями Liquibase или Flyway помогают контролировать изменения схемы базы данных.</li>
71
<li>Журналы ошибок и запросов помогают выявлять проблемы в работе MySQL.</li>
71
<li>Журналы ошибок и запросов помогают выявлять проблемы в работе MySQL.</li>
72
<li>Профайлер MySQL Profiler - позволяет анализировать запросы и выявлять узкие места в производительности.</li>
72
<li>Профайлер MySQL Profiler - позволяет анализировать запросы и выявлять узкие места в производительности.</li>
73
</ul><p>Это лишь часть инструментов для контроля состояния БД.</p>
73
</ul><p>Это лишь часть инструментов для контроля состояния БД.</p>
74
<p>Перечислим основные фишки этой СУБД:</p>
74
<p>Перечислим основные фишки этой СУБД:</p>
75
<ul><li><strong>Свободная лицензия GNU GPL.</strong>Пользователи могут свободно изучать, изменять и распространять программу. Обратная сторона в том, что все проекты, которые вы создадите на базе этой СУБД, также должны распространяться по GNU GPL. Если это не входит в ваши планы, придётся раскошелиться на платную лицензию.</li>
75
<ul><li><strong>Свободная лицензия GNU GPL.</strong>Пользователи могут свободно изучать, изменять и распространять программу. Обратная сторона в том, что все проекты, которые вы создадите на базе этой СУБД, также должны распространяться по GNU GPL. Если это не входит в ваши планы, придётся раскошелиться на платную лицензию.</li>
76
</ul><ul><li><strong>Бесплатность.</strong>Это преимущество вытекает из предыдущего вместе со всеми подводными камнями. Но если вы хотите использовать СУБД для себя, сугубо в некоммерческих целях - лучше решения не найти.</li>
76
</ul><ul><li><strong>Бесплатность.</strong>Это преимущество вытекает из предыдущего вместе со всеми подводными камнями. Но если вы хотите использовать СУБД для себя, сугубо в некоммерческих целях - лучше решения не найти.</li>
77
<li><strong>Простая и понятная установка.</strong>Базы данных легко устанавливаются на хостинги. Есть множество инструментов для управления базами данных, которые упрощают администрирование и настройку.</li>
77
<li><strong>Простая и понятная установка.</strong>Базы данных легко устанавливаются на хостинги. Есть множество инструментов для управления базами данных, которые упрощают администрирование и настройку.</li>
78
<li><strong>Высокая производительность.</strong>Это важно для веб-сервисов и мобильных приложений, которые работают под большой нагрузкой. Скорость работы достигается за счёт механизмов кэширования, оптимизации запросов и хорошей обработки транзакций.</li>
78
<li><strong>Высокая производительность.</strong>Это важно для веб-сервисов и мобильных приложений, которые работают под большой нагрузкой. Скорость работы достигается за счёт механизмов кэширования, оптимизации запросов и хорошей обработки транзакций.</li>
79
<li><strong>Гибкость в масштабировании.</strong>Возможна как горизонтальная масштабируемость (добавление новых серверов), так и вертикальная масштабируемость (использование более мощного оборудования).</li>
79
<li><strong>Гибкость в масштабировании.</strong>Возможна как горизонтальная масштабируемость (добавление новых серверов), так и вертикальная масштабируемость (использование более мощного оборудования).</li>
80
<li><strong>Кросс-платформенность.</strong>MySQL работает на разных операционных системах: Windows, Linux, macOS, Unix, BSD и многих других.</li>
80
<li><strong>Кросс-платформенность.</strong>MySQL работает на разных операционных системах: Windows, Linux, macOS, Unix, BSD и многих других.</li>
81
<li><strong>Гибкость и многофункциональность.</strong>MySQL подходит для разных приложений - от небольших сайтов до крупных корпоративных систем, поддерживает разные языки программирования и платформы.</li>
81
<li><strong>Гибкость и многофункциональность.</strong>MySQL подходит для разных приложений - от небольших сайтов до крупных корпоративных систем, поддерживает разные языки программирования и платформы.</li>
82
<li><strong>Активное комьюнити разработчиков и пользователей.</strong>В интернете полно ресурсов и сообществ, где можно найти обучающие материалы и гайды или обсудить возникшие проблемы с более опытными пользователями.</li>
82
<li><strong>Активное комьюнити разработчиков и пользователей.</strong>В интернете полно ресурсов и сообществ, где можно найти обучающие материалы и гайды или обсудить возникшие проблемы с более опытными пользователями.</li>
83
</ul><p>Это можно сделать тремя способами:</p>
83
</ul><p>Это можно сделать тремя способами:</p>
84
<p><strong>Если у вас есть сервер на хостинге</strong>,<strong></strong>проверьте, можно ли подключиться к MySQL в личном кабинете. А такая возможность, скорее всего, есть, потому что любой современный хостинг поддерживает работу с MySQL. В этом случае вам даже не придётся ничего скачивать - установщик на сервере сделает всё за вас.</p>
84
<p><strong>Если у вас есть сервер на хостинге</strong>,<strong></strong>проверьте, можно ли подключиться к MySQL в личном кабинете. А такая возможность, скорее всего, есть, потому что любой современный хостинг поддерживает работу с MySQL. В этом случае вам даже не придётся ничего скачивать - установщик на сервере сделает всё за вас.</p>
85
<p><strong>Если вам нужна только СУБД</strong>, бесплатную версию можно скачать<a>с официального сайта</a>. Там же можно загрузить API, библиотеки и инструменты для связи с разными языками программирования, средами и технологиями. После этого вы сможете начать работу с базой данных через клиент MySQL Shell, графический интерфейс MySQL Workbench или другое приложение.</p>
85
<p><strong>Если вам нужна только СУБД</strong>, бесплатную версию можно скачать<a>с официального сайта</a>. Там же можно загрузить API, библиотеки и инструменты для связи с разными языками программирования, средами и технологиями. После этого вы сможете начать работу с базой данных через клиент MySQL Shell, графический интерфейс MySQL Workbench или другое приложение.</p>
86
<p><strong>Если вам нужен локальный сервер</strong>, скачайте готовый пакет для создания окружения - например,<a>Open Server Panel</a>для Windows или<a>MAMP</a>для Linux. В этом случае у вас будет не только СУБД, но и весь базовый обвес для обучения или создания небольших проектов: язык PHP, веб-сервер, файловый менеджер, текстовый редактор и так далее.</p>
86
<p><strong>Если вам нужен локальный сервер</strong>, скачайте готовый пакет для создания окружения - например,<a>Open Server Panel</a>для Windows или<a>MAMP</a>для Linux. В этом случае у вас будет не только СУБД, но и весь базовый обвес для обучения или создания небольших проектов: язык PHP, веб-сервер, файловый менеджер, текстовый редактор и так далее.</p>
87
<p>Для более глубокого понимания возможностей MySQL ознакомьтесь с <a>официальной документацией</a>. Но это если вы хотите погрузиться прямо очень глубоко. В большинстве случаев вам вполне хватит онлайн-курсов и ресурсов, которыми изобилует интернет. Например, хорошие видеоуроки по MySQL есть<a>здесь</a>и <a>здесь</a>. А на <a>сайте W3Schools</a>есть бесплатные тренажёры, где можно попрактиковаться не только в MySQL, но и в самом SQL.</p>
87
<p>Для более глубокого понимания возможностей MySQL ознакомьтесь с <a>официальной документацией</a>. Но это если вы хотите погрузиться прямо очень глубоко. В большинстве случаев вам вполне хватит онлайн-курсов и ресурсов, которыми изобилует интернет. Например, хорошие видеоуроки по MySQL есть<a>здесь</a>и <a>здесь</a>. А на <a>сайте W3Schools</a>есть бесплатные тренажёры, где можно попрактиковаться не только в MySQL, но и в самом SQL.</p>
88
<p>* Решением суда запрещена "деятельность компании Meta Platforms Inc. по реализации продуктов - социальных сетей Фейсбук и Инстаграм на территории Российской Федерации по основаниям осуществления экстремистской деятельности".</p>
88
<p>* Решением суда запрещена "деятельность компании Meta Platforms Inc. по реализации продуктов - социальных сетей Фейсбук и Инстаграм на территории Российской Федерации по основаниям осуществления экстремистской деятельности".</p>
89
<p>Data Science с нуля: пробуем профессии на практике за 5 дней</p>
89
<p>Data Science с нуля: пробуем профессии на практике за 5 дней</p>
90
<p>Вы разберётесь в трёх главных направлениях data science: машинном обучении, разработке на Python и визуализации данных. Решите, какая сфера вам ближе, и выполните 4 реальные задачи с данными.</p>
90
<p>Вы разберётесь в трёх главных направлениях data science: машинном обучении, разработке на Python и визуализации данных. Решите, какая сфера вам ближе, и выполните 4 реальные задачи с данными.</p>
91
<p><a>Пройти бесплатно</a></p>
91
<p><a>Пройти бесплатно</a></p>
92
<a><b>Попробуйте data science на бесплатном курсе</b>Пройдите курс по data science и изучите 3 направления в работе с данными. Решите, в какой сфере хотите развиваться дальше, и получите ценные подарки. Пройти курс →</a>
92
<a><b>Попробуйте data science на бесплатном курсе</b>Пройдите курс по data science и изучите 3 направления в работе с данными. Решите, в какой сфере хотите развиваться дальше, и получите ценные подарки. Пройти курс →</a>