Сначала давайте получим базовые знания о SQL, а затем приступим к работе с MySQL.
Что такое SQL?
SQL — это аббревиатура от «язык структурированных запросов». Это язык программирования, созданный для управления данными, хранящимися в реляционных базах данных.
Это тип базы данных, в которой информация организована в одну или несколько таблиц.
Бренды систем управления реляционными базами данных
- База данных Oracle
- Microsoft SQL-сервер
- MySQL
- Постгрес SQL
Эти базы данных имеют механизмы базы данных, которые будут обрабатывать операции SQL для разных типов таблиц.
Что такое MySQL
MySQL — это система управления реляционными базами данных с открытым исходным кодом. Пользователи могут использовать эту систему с помощью SQL. InnoDB является стандартным и наиболее широко используемым механизмом хранения. Есть и другие движки, такие как MyISAM
Сравнение InnoDB и MyISAM
InnoDB — это безопасный для транзакций (совместимый с ACID) механизм хранения для MySQL, который имеет возможности фиксации, отката и аварийного восстановления для защиты пользовательских данных.
Откат означает операцию, которая приведет базу данных в прежнее стабильное состояние.
Это важно для целостности данных. Потому что, если произошла ошибочная операция, разработчики могут вернуть ее в чистое состояние.
Таблицы движка MyISAM занимают меньше места, чем InnoDb. Таблицы, построенные с помощью этого механизма, будут ограничивать производительность рабочих нагрузок чтения/записи, поэтому он часто используется в рабочих нагрузках только для чтения или в основном для чтения в веб-конфигурациях и конфигурациях хранилищ данных.
Разница между sqLite и MySQL.
SQLite — это не столько SQL-сервер. На самом деле это просто система баз данных. Базы данных могут быть встроены в приложения или использоваться локально без дополнительных «серверных» ресурсов.
Но MySQL — это SQL-сервер. Он явно действует как сервер базы данных, и лучшим примером этого является технологический стек LAMP.
Итак, почему mysql?
- Высокая производительность
- Может эффективно подключаться к другим технологиям (например, WAMP, LAMP)
- Снижение общей стоимости владения
- Гибкость открытого исходного кода
Что такое MariaDB и сравнение с MySQL
Это также система управления базами данных, разработанная командой MySQL.
Они разработали эту СУБД, используя форк MySQl. Он включает механизм хранения XtraDB для замены InnoDB, а также новый механизм хранения Aria, который должен быть как транзакционным, так и нетранзакционным механизмом.
Стражи транзакций базы данных: ACID
Прежде всего, давайте разберемся, что такое транзакция?
Это единица работы, выполняемая в СУБД по отношению к базе данных и обрабатываемая последовательно и надежно независимо от других транзакций.
Эти транзакции имеют две основные цели.
- Предоставление надежных единиц работы, которые позволяют корректно восстанавливаться после сбоев и поддерживать согласованность базы данных даже в случае сбоя системы. Это очень важно, потому что при остановке выполнения (полностью или частично) многие операции над базой данных остаются незавершенными, с неясным статусом.
- Чтобы обеспечить изоляцию между программами, одновременно обращающимися к базе данных. Если эта изоляция не обеспечена, результаты программ могут быть ошибочными.
Таким образом, чтобы защитить эти потребности транзакции, необходимо выполнить 4 фактора. Это называется КИСЛОТА
- атомарность
- Последовательность
- Изолированный
- Долговечность
атомарность
Атомарность просто означает, что транзакция базы данных просто неделима и нередуцируема.
В практическом сценарии в данный момент эта транзакция может еще не произойти. Но в следующий момент оно будет полностью там. Это связано с тем, что для атомарности характерно все или ничего.
Поэтому из-за этого мы не можем идентифицировать транзакцию как процесс.
Последовательность
Транзакция базы данных должна изменять только затронутые данные и только разрешенными способами.
Это означает, что любые данные, записанные в базу данных, должны быть действительными в соответствии со всеми определяющими правилами.
Изолированный
Эта функция определяет, как целостность транзакций видна другим пользователям и системам.
Еще не зафиксированная транзакция должна оставаться изолированной от других транзакций.
Более низкий уровень изоляции увеличивает возможность одновременного доступа многих пользователей к одним и тем же данным, но увеличивает количество эффектов параллелизма (таких как грязное чтение или потерянные обновления), с которыми могут столкнуться пользователи.
И наоборот, более высокий уровень изоляции снижает количество типов эффектов параллелизма, с которыми могут столкнуться пользователи, но требует больше системных ресурсов и увеличивает вероятность того, что одна транзакция заблокирует другую.
Долговечность
Эта функция предназначена для защиты зафиксированных данных, которые правильно сохраняются в базе данных. Таким образом, даже в случае сбоя и перезапуска системы данные доступны в правильном состоянии.
Это гарантирует, что зафиксированные данные будут сохраняться постоянно.