Мы собираем файлы cookie и применяемрекомендательные технологии

MySQL: что это за СУБД, зачем нужна, как с ней работать
Поддержка
Связаться с поддержкой
Личные кабинеты продуктов
ВОЙТИ
  • Разработка

MySQL: определение, плюсы, минусы и способы работы

Еще не оценен

MySQL — опенсорс-система управления реляционной базой данных (БД), разрабатываемая и поддерживаемая Oracle. Это инструмент для упорядоченного хранения и управления данными, который позволяет использовать их в веб-приложениях.

Реляционная БД допускает нормализацию, и информация разбивается в ней на несколько таблиц, а не представляет собой массивную единицу хранения. Данные из этих двух таблиц можно связать и при необходимости манипулировать и комбинировать их по своему усмотрению.

Нормализация — проектирование схемы БД без логической избыточности или с минимальной избыточностью. Например, в базе данных авиакомпании Ф. И. О. пилота хранится только в таблице Pilots. Во всех других таблицах пилоты идентифицируются по PilotId. Такой подход исключает вероятность опечатки, и СУБД может различать двух людей с одинаковыми именами по их идентификаторам.

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

Работа с MySQL

Реляционная СУБД MySQL состоит из двух основных концепций: реляционной БД и модели «клиент — сервер».

Реляционная база данных

В реляционной БД данные хранятся в связанных друг с другом таблицах, которые довольно часто связаны друг с другом. Возьмём для примера две таблицы для авиакомпании: одна — для записи информации о пилотах, другая содержит сведения об отдельных рейсах. Их можно связать по одинаковому столбцу, как показано на изображении ниже.

Первичный ключ (primary key) -- — поле или сочетание нескольких полей, хранящее уникальные значения. На практике в качестве первичного ключа часто выбирают поле, хранящее ID. В нашем примере PilotId -- — первичный ключ таблицы PILOTS.

Модель «клиент — сервер»

В модели «клиент — сервер» сервер — место, где хранятся данные, а клиент — инструмент, который используется для доступа и извлечения. 

При работе с MySQL можно выбрать пакеты с открытым исходным кодом на разных языках программирования — Python, JavaScript, PHP, C++, Java и другие. Используя эти пакеты, вы сможете обрабатывать данные в СУБД внутри кода с помощью команд SQL, формирующих запросы. Чтобы выполнить или получить необходимые данные, существуют различные команды SQL. 

Запросы

Возьмём приведённый выше пример БД авиакомпании и сделаем к ней несколько наглядных запросов:

1. Отобразить всю информацию в таблице Pilots.

SELECT *
FROM Pilots;

2. Отобразить содержимое столбца Name в таблице Pilots.

SELECT Name
FROM Pilots;

3. Найти конкретного пилота по его идентификационному номеру.

SELECT *
FROM Pilots
WHERE PilotID = 10 ;

4. Создать новое меню для питания в полёте.

Если FlightID представляет собой целое число, название блюда должно содержать не более 25 символов, и количество каждого приёма пищи также является целочисленным значением.

CREATE TABLE MealsInfo(
FlightID INT,
MealName VARCHAR(25),
Quantity INT,
);

5. Добавить блюда в таблицу MealsInfo.

INSERT INTO MealsInfo (FlightID,MealName, Quantity)
VALUES
(1002, Chicken, 46),
(1003, Beef , 28),
(1004, Veg , 39);

Все эти команды не зависят от языка программирования, который вы используете для создания приложения: набор команд для взаимодействия с БД всегда будет в SQL.

Таблицы

Таблицы — базовые структуры БД MySQL, хранящие информацию в своих ячейках. В каждой строке содержится один элемент данных — запись с определёнными атрибутами. Таблицы нужны для группировки связанных атрибутов, а также для лучшей организации данных и доступа к ним.

Теоретически нет ограничений на количество таблиц в MySQL. Однако разработчики баз данных стараются ограничить их, чтобы объём добавленной и извлечённой информации оставался в разумных пределах.

Как создать таблицу в MySQL

1. Подключаемся к базе данных MySQL.

Вы можете использовать клиент MySQL, например phpMyAdmin, с простым пользовательским интерфейсом для подключения и управления базами данных.

Чтобы установить соединение с сервером MYSQL через терминал, выбираем команду:

# mysql -u username -p

После ввода имени, пароля и входа в систему можно создать таблицу в MySQL.

2. Создаём базу данных.

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

mysql> CREATE DATABASE <database_name>;

Затем проверяем создание новой базы при помощи оператора SHOW, отображающего список всех имеющихся БД:

mysql> SHOW DATABASES;

3. Выбираем базу данных.

Для переключения на нужную базу данных используем команду:

mysql> USE database_name;

Вы увидите сообщение о том, что БД изменена, значит, команда выполнена успешно.

4. Создаём таблицу в MySQL.

Используем для этого следующую команду:

mysql> CREATE TABLE table_name (
column1 datatype,
column2 datatype,
column3 datatype,
);

В примере ниже мы создали таблицу users с четырьмя столбцами: id, username, password и email. Все они имеют тип данных VARCHAR:

mysql> CREATE TABLE users (
id INT PRIMARY KEY,
username VARCHAR(50),
password VARCHAR(50),
email VARCHAR(50)
);

Индексы

Основное преимущество применения индексации — существенное увеличение скорости выборки или извлечения информации. Главный недостаток — замедление операций обновления, так как новая запись в индексируемый файл требует обновления и соответствующего индекса в нём.

MySQL использует индексы для быстрого поиска строк с определёнными значениями столбцов. Без индекса СУБД будет сканировать всю таблицу, чтобы найти соответствующие строки, и чем больше таблица, тем медленнее осуществляется поиск.

Рассмотрим на примере.

Создадим таблицу с индексом, содержащим два столбца: col2 и col3.

mysql> CREATE TABLE t_index(  
col1 INT PRIMARY KEY,
col2 INT NOT NULL,
col3 INT NOT NULL,
col4 VARCHAR(20),
INDEX (col2,col3)
);

Чтобы добавить индекс в таблицу, выберем оператор CREATE INDEX:

mysql> CREATE INDEX [index_name] ON [table_name] (column names)  

По умолчанию MySQL разрешает тип индекса BTREE, если мы не указали иное. Ниже показаны различные типы индексов в зависимости от способа хранения таблицы:

Однако индексы снижают эффективность операций INSERT и UPDATE, ведь их также придётся изменить соответствующим образом при обновлении значения данных в таблице. Поэтому использование индексов не всегда целесообразно.

Оптимизация работы с БД

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

  1. Оптимизируйте SQL-запросы благодаря их индексации.

  2. Следите за ресурсами аппаратной части сервера: процессором, оперативной памятью, пространством жёсткого диска и работой сети — и своевременно обновляйте его конфигурацию.

  3. Используйте кеширование запросов MySQL для повышения производительности системы. Если популярные запросы сохранены, то в будущем ответы на них будут приходить намного быстрее.

  4. Автоматизируйте настройку. Используйте инструменты для автоматизации производительности вашей базы данных MySQL и настройки конфигурации (Jet Profiler, DbSchema и др.). Они увеличат производительность MySQL, автоматизируя значительную часть рабочего процесса системы.

SQL в MySQL

Язык запросов SQL применяется для взаимодействия с такими СУБД, как MySQL, и позволяет разработчикам и пользователям беспрепятственно взаимодействовать с разными платформами баз данных.

Используя SQL с БД, можно выполнять следующие операции: извлечение, вставку, обновление и удаление информации, сложный поиск, фильтрацию, сортировку и агрегирование данных.

SQL предлагает надёжные механизмы обеспечения целостности информации при помощи функций ограничения, работы с внешними ключами и контроля транзакций (ACID).

SQL позволяет создавать, изменять схемы БД и управлять ими. Администраторы баз данных используют его для определения связей, представлений, индексов и других структурных элементов таблицы, необходимых для эффективной организации данных и управления ими.

Транзакции

Транзакции Mysql — атомарная единица, состоящая из нескольких запросов SQL, которые должны быть начаты и завершены или отменены при возникновении проблемы. В случае возникновения ошибки система либо выполнит все команды и зафиксирует транзакцию, либо воздержится от их выполнения и откатит транзакцию.

Свойства транзакции MySQL

MySQL, наряду с различными механизмами хранения данных, обеспечивает полную поддержку ACID. Термином ACID мы обозначаем набор следующих свойств транзакций:

  1. Атомарность. Все операции внутри рабочей единицы должны быть выполнены успешно или не выполнены вовсе. Транзакция гарантированно не будет сохранена «частично».

  2. Согласованность. Обеспечивает внесение изменений в базу данных в случае успешного совершения транзакции.

  3. Изоляция. Параллельно выполняемые транзакции работают независимо друг от друга.

  4. Надёжность. В случае сбоя системы изменения, внесённые в базу данных, будут успешно сохранены и останутся в БД.

Перечислим операторов для работы с транзакциями в MySQL:

  1. START TRANSACTION, BEGIN и BEGIN WORK. Используются для начала транзакции в MySQL.

  2. COMMIT. Когда все операторы внутри транзакции или рабочей единицы полностью выполнены, транзакция может быть зафиксирована с помощью оператора COMMIT.

  3. ROLLBACK. Выполняет откат транзакции в случае какого-либо сбоя.

  4. SET autocommit. По умолчанию все операции в MySQL фиксируются автоматически, а их изменения сохраняются навсегда. Чтобы отключить автоматическое подтверждение, установим свойство autocommit в значение off или 0:

SET autocommit = OFF;

Включение режима автофиксации:

SET autocommit = 1;

Заключение

Если вы в поисках удобного инструмента для хранения и управления данными, то MySQL — отличный вариант. Он быстро и эффективно обрабатывает запросы, стабилен и легко масштабируется, а также дает много возможностей для разработки и поддержки разных типов приложений.

Использование MySQL оптимизирует работу с данными, повышает эффективность и гарантирует надёжное хранение информации, что делает его удобным решением для различных проектов и приложений. Это система со свободной лицензией и хорошей документацией, она широко распространена и пользуется спросом на рынке СУБД.

Оцените статью:
Предыдущая статья Следующая статья
Содержание статьи
Решения МТС Exolve
Умная проверка номера
Подробнее
Все решения для отдела поддержки
Подробнее
Все решения для служб доставки
Подробнее
Решения МТС Exolve
Умная проверка номера
Подробнее
Все решения для отдела поддержки
Подробнее
Все решения для служб доставки
Подробнее