| Archive
|
-
|
Складність масштабування
|
Великі системи потребують ретельної архітектури. Обрати InnoDB.CREATE DATABASE app_db;
Популярні підходи:
== 36. MySQL і cloud ==
</syntaxhighlight>
SELECT *
|-
| MySQL виступає як частиною класичного LAMP-стеку
| Linux, Apache, MySQL і PHP зробили веброзробку масовою. Приклад:
== 39. MySQL vs PostgreSQL ==
* вебсайтів;
* CMS;
* блогів;
* інтернет-магазинів;
* CRM;
* ERP;
* SaaS-сервісів;
* API;
* мобільних backend-ів;
* аналітичних систем малого й середнього масштабу;
* внутрішніх бізнес-застосунків;
* навчання SQL;
* класичного LAMP-стеку.[[SQLite]]
! Критерій
У сучасних застосунках MySQL часто використовують через ORM. |-
| MySQL Enterprise Edition
| Комерційна реліз системи з додатковими enterprise-функціями, підтримкою Oracle, security, monitoring, backup та HA-можливостями. email VARCHAR(255) UNIQUE NOT NULL,
! ! users
2. |-
| phpMyAdmin
| Вебінтерфейс для MySQL/MariaDB, дуже популярний на хостингах. Замість хаотичних файлів:
5. |}
<syntaxhighlight lang="sql">
! |-
| MySQL застосовується для WordPress
| Це сильно вплинуло на його масову популярність. |-
| “Root user для застосунку — нормально”
| Так простіше на старті. GRANT SELECT, INSERT, UPDATE, DELETE
<syntaxhighlight lang="sql">
docker run --name mysql-dev \
А справжній backup існує лише тоді, коли ви знаєте:
'''Foreign key''' — посилання на рядок в іншій таблиці. |-
| 1990-ті
| MySQL оперативно поширюється серед веброзробників. |-
| 2010
| Oracle купує Sun Microsystems і стає власником MySQL.== 21. MySQL Community Edition і Enterprise Edition ==
MySQL
== 40. MySQL vs MariaDB ==
3. | Дуже сильна SQL і extensibility. Додати primary keys.<syntaxhighlight lang="sql">
<pre>
CREATE INDEX idx_users_email ON users(email);
SHOW TABLES;
</div>
== 11. Storage engines ==
</syntaxhighlight>
</div>
</syntaxhighlight>
Це дає можливість MySQL підтримувати зв'язки між таблицями. Linux
! payments
<syntaxhighlight lang="sql">
[[SQL]]
'''Replication''' дає можливість копіювати інформаційні дані з одного MySQL-сервера на інші. |-
| Простий старт
| Часто простіший для новачків.</syntaxhighlight>
MySQL — це популярна реляційна платформа керування базами даних, яка стала одним із фундаментів веброзробки. Спроєктувати схему. користувач системи має замовлення. | Oracle.== 50. Безпека ==
Ключові етапи:
- replication;
- semi-synchronous replication;
- Group Replication;
- InnoDB Cluster;
- InnoDB ClusterSet;
- ProxySQL;
- MySQL Router;
- managed database services;
- backup + failover;
- cloud-native HA. Додати гроші на рахунок B. ! |-
|
Типові користувачі
|
}
Це означає, що інформаційні дані зберігаються в таблицях, а таблиці можуть бути пов'язані між собою. Linux Server
</syntaxhighlight>
Приклади:
== 33. MySQL і ORM ==
EXPLAIN
'''View''' — це віртуальна таблиця на основі SQL-запиту. |-
| MariaDB виникла як fork MySQL
| Частина спільноти хотіла незалежніший дорожня карта розвитку після переходу MySQL до Oracle. |-
| 2025
| MySQL 9.5 виходить як Innovation Release. SEO-опис
WHERE active = 1;
+--> orders
-d mysql:8.4
== 20. High availability ==
FLUSH PRIVILEGES;
MySQL уже давно не без зусиль “база для PHP-сайтів”. SEO-опис
Це сервер баз даних, з яким працюють через SQL, клієнтські бібліотеки, GUI-інструменти, ORM, backend-код або командний рядок. MySQL
48. Цікаві факти
4. історія продукту
ORM — Object-Relational Mapping. |-
|
Адміністрування
|
-
|
Реплікація потребує досвіду
|
Неправильна replication setup здатна створити проблеми.
products.txt
Приклад:
Типовий стек:
SELECT id, name, email
- блогів;
- форумів;
- CMS;
- маленьких інтернет-магазинів;
- хостингів;
- студентських проєктів;
- перших стартапів;
- внутрішніх панелей адміністрування.== 32. MySQL і WordPress ==
|-
| Назва
| MySQL
|-
| Тип
| Реляційна платформа керування базами даних
|-
| Основна мова запитів
| SQL
|-
| Розробник / власник
| Oracle Corporation
|-
| Початкові автори
| MySQL AB, зокрема Michael “Monty” Widenius, David Axmark, Allan Larsson
|-
| Перший реліз
| 1995 рік
|-
| базовий storage engine
| InnoDB
|-
| Ліцензування
| Community Edition — GPL; Enterprise Edition — комерційна
|-
| Типові ОС
| Linux, Windows, macOS, Unix-like системи
|-
| Актуальна LTS-гілка на травень 2026
| MySQL 8.4 LTS
|-
| Актуальна Innovation-гілка, за офіційними release notes
| MySQL 9.5 / 9.x Innovation releases
|}
== 16. EXPLAIN ==
TO 'app_user'@'localhost';
Якщо сталася помилка:
Цей стек зробив створення сайтів дешевшим, доступнішим і масовішим. І ставити запити:
SELECT name, email
== 1. Загальний SEO-опис ==
{| class="wikitable"
CREATE TRIGGER before_user_insert
|-
| MySQL Community Edition
| Безкоштовна open source-версія MySQL.== 6. SQL ==
Приклад вибірки:
{| class="wikitable"
[[InnoDB]]
|
7. |-
| MyISAM
| Старий engine, історично важливий, але менш придатний для сучасних transactional workloads.{{DISPLAYTITLE:MySQL}}
</syntaxhighlight>
JOIN orders ON orders.user_id = users.id;
{{SEO
|title=MySQL — реляційна система керування базами даних
|description=Огляд MySQL: історія, Oracle, SQL, InnoDB, storage engines, replication, transactions, індекси, JSON, MySQL Community і Enterprise, переваги, недоліки, цікаві факти та порівняння з PostgreSQL, MariaDB і SQLite.
|keywords=MySQL, SQL, RDBMS, database, relational database, Oracle, InnoDB, replication, MySQL Server, MySQL Community Edition, MySQL Enterprise Edition, MariaDB, PostgreSQL, SQLite
}}
[[База даних]]
MySQL використовують для:
1. Створити окремого database user. |-
| InnoDB — default engine
| У сучасному MySQL саме InnoDB виступає як головним storage engine. |-
| Сумісність
| Підтримується багатьма мовами програмування й ORM. |-
| Власник
| Oracle. Oracle Database
{| class="wikitable"
Приклад:
! | Enterprise, large corporations, mission-critical systems. Приклад:
<div style="border-left: 6px solid #1565c0; background: #e3f2fd; padding: 12px 16px; margin: 16px 0;">
id INT PRIMARY KEY AUTO_INCREMENT,
FROM users
! |-
| 2008
| Sun Microsystems купує MySQL AB. |-
| Одночасні користувачі
| Краще для багатокористувацьких систем.</syntaxhighlight>
Ці механізми дозволяють переносити частину логіки на рівень бази даних. |-
| CSV
| Таблиці у CSV-подібному форматі.[[MySQL Workbench]]
== 31. MySQL у веброзробці ==
Багато адміністраторів роблять backup. id INT PRIMARY KEY AUTO_INCREMENT,
<syntaxhighlight lang="sql">
! :contentReference [oaicite:1]{index=1} MySQL 9.5.0 вийшов 21 жовтня 2025 року як Innovation Release. !</syntaxhighlight>
[[Binary log]]
* користувачі;
* сесії;
* товари;
* замовлення;
* платежі;
* коментарі;
* конфігурація;
* logs;
* контент;
* CMS-дані. | Комерційна enterprise-СУБД. Після цього можна писати:
|
<pre>
|
WHERE email = 'test@example.com';
|
сценарії використання:
FROM events;
FOREIGN KEY (user_id) REFERENCES users(id)
Саме тому MySQL так часто згадують поруч із PHP і WordPress. SQLite
[[PHP]]
<pre>
-e MYSQL_ROOT_PASSWORD=secret \
== 44. Коли MySQL здатна бути не найкращим вибором ==
</div>
'''MySQL''' — це реляційна платформа керування базами даних, або '''RDBMS'''. | Розділяти сутності й використовувати зв'язки. Офіційна документація MySQL 8.4 описує InnoDB як general-purpose storage engine, який балансує reliability і performance; у MySQL 8.4 InnoDB виступає як default storage engine. FROM users
<syntaxhighlight lang="sql">
! MySQL
Простими словами:
! Engine
== 30. Цікавий факт: backup без перевірки відновлення — це не backup, а надія ==
* volumes;
* backups;
* memory;
* filesystem;
* upgrades;
* monitoring;
* replication;
* security.[[LAMP]]
== 34. MySQL Shell і Workbench ==
Приклад вставки:
MySQL доступний як managed database у багатьох хмарах:
! |-
| MySQL має Community і Enterprise editions
| Community Edition безкоштовна, Enterprise має комерційні функції ERP й підтримку. 2. |-
| MySQL має LTS і Innovation-релізи
| LTS — для стабільності, Innovation — для швидшого отримання нових можливостей. |-
| MySQL належить Oracle
| Oracle отримала MySQL після придбання Sun Microsystems. |-
| Власник / дорожня карта розвитку
| Oracle. | Дуже популярний у сучасному backend/SaaS. Як правильно думати
Вона потрібна для зберігання, пошуку, зміни й організації структурованих даних. здатна працювати значно швидше, якщо `email` проіндексовано. |-
| Спільнота
| Частина спільноти обирає MySQL, частина MariaDB. DESCRIBE users;
|-
| “База сама буде швидкою”
| MySQL популярний, але не магічний.== 15. Цікавий факт: неправильний індекс здатна бути не меншою проблемою, ніж відсутній індекс ==
* індекси прискорюють читання;
* але сповільнюють вставку й оновлення версій;
* займають місце;
* мають підтримуватися;
* можуть не використовуватися optimizer-ом;
* можуть бути зайвими. MySQL
START TRANSACTION;
== 8. Primary key і foreign key ==
FOR EACH ROW
* створювати таблиці;
* додавати інформаційні дані;
* змінювати інформаційні дані;
* видаляти інформаційні дані;
* шукати інформаційні дані;
* об'єднувати таблиці;
* створювати індекси;
* керувати правами;
* робити транзакції. :contentReference [oaicite:4]{index=4}
Приклад створення користувача:
|-
| mysql client
| Класичний командний клієнт ERP. | Використовувати prepared statements. |}
-e MYSQL_DATABASE=app \
[[Docker]]
{| class="wikitable"
<syntaxhighlight lang="sql">
UPDATE accounts
|-
| Походження
| Оригінальний MySQL під Oracle. |-
| Сервер
| Потрібен MySQL Server. |}
1. |-
| 2000-ті
| MySQL стає важливою частиною LAMP-стеку.== 45. Типові помилки новачків ==
MySQL має довгу історію і став одним із головних символів open source вебу. Недолік
+--> Replica 2
Oracle
</syntaxhighlight>
MariaDB
Класичний веб 2000-х часто будувався на LAMP:
Чому це цікаво: MySQL став майже “мовою за замовчуванням” для класичного вебу: WordPress, phpBB, ранні LAMP-сервери, хостинги, PHP-застосунки й тисячі сайтів роками будувалися навколо MySQL. |-
| C
|
Consistency
|
-
|
Вартість
|
виступає як Community Edition. Менше адміністраторів регулярно перевіряють restore.MySQL
</syntaxhighlight>
- використовувати актуальну підтримувану версію;
- не відкривати порт 3306 у публічний інтернет без потреби;
- створювати окремих користувачів для застосунків;
- давати мінімальні права;
- використовувати TLS для віддалених з'єднань;
- використовувати prepared statements;
- регулярно робити backup;
- перевіряти restore;
- увімкнути slow query log для аналізу;
- стежити за security updates;
- не зберігати паролі у відкритому коді;
- використовувати secrets management у production. CREATE TABLE orders (
Для високої доступності MySQL використовують різні підходи:
MySQL дуже часто застосовують, коли потрібно у вебзастосунках. Зняти гроші з рахунку A. | Дуже висока. |-
|
Реплікація MySQL базується на binary log
|
Source записує зміни, replicas їх читають і застосовують. :contentReference [oaicite:2]{index=2}
- не завжди найкращий вибір для складної аналітики;
- потребує уважного проєктування схеми;
- продуктивність сильно залежить від індексів і запитів;
- Oracle-власність викликає дискусії;
- replication і HA потребують досвіду;
- для деяких advanced SQL-сценаріїв PostgreSQL здатна бути сильнішим. |-
|
InnoDB
|
-
|
MySQL Workbench
|
Дуже сильна JSONB-екосистема. Планувати оновлення версій. |-
|
Складність
|
Простішій старт. SELECT JSON_EXTRACT(data, '$.user_id')
|
Вибрати базу:
|
-
|
Performance залежить від схеми
|
-
|
D
|
Durability
|
-
|
Інструменти
|
виступає як CLI, Workbench, phpMyAdmin, connectors, cloud services.PostgreSQL
MySQL replication тісно пов'язана з binary log. CREATE TABLE users (
|
| A
|
Atomicity
|
Транзакція виконується на 100% або не виконується. id INT PRIMARY KEY AUTO_INCREMENT,
SELECT *
MySQL Enterprise Edition описує InnoDB Cluster як high-availability solution. Критерій
<syntaxhighlight lang="sql">
|
|