====1. Коротка історія та характеристика MySQL==== 1996р. – перша версія `MySql. Розробник – //М. Видениус (Michael Widenius)//.\\ *MySQL – потужна СУБД з відкритим кодом, яка має великі функціональні можливості. *MySQL має клієнт-серверну архітектуру. *MySQL – крос-платформенна система (Windows, Linux, Mac OS та інші). *До БД MySQL можуть підключатись додатки, створені на C/C++, Java, Perl, PHP, ODBC, NET, Visual Studio,... *Багатопоточність – підтримка одночасно декількох запитів (доступ багатьох користувачів). *Висока швидкодія, масштабованість, стійкість до помилок. Наприклад, існує MySQL-сервер, який працює з 60 тис. таблицями, 5 млрд. рядків. *MySQL має систему забезпечення безпеки і розмежування доступу на основі системи привілеїв. *Mysql написана на Си та C++ *MySQL має API і коннектори для мов Delphi, C, C++, Эйфель, Java, Лисп, Perl, PHP, Python, Ruby, Smalltalk,... *MySQL має бібліотеки для мов платформи .NET *Реалізовано оптимізацію зв’язків *Гнучка система привілеїв і паролей *До 16 ключів в таблиці. Кожний ключ може мати до 15 полів *Утіліта перевірки і ремонту таблиць *Легкість управління таблицями, включаючи добавлення і видалення ключів і полів. *У MySQL можна створювати транзакції, що підвищує швидкодію і надійність. На початку 1990 рр. існували декілька постачальників СУБД, і кожний розробляв свій інтерфейс. \\ Було створено **стандартний інтерфейс ODBC** для джерел даних різних типів. MyODBC працює на всіх системах Microsoft Windows и на більшості платформ Unix. *ODBC (Open DataBase Connectivity) – відкритий інтерфейс доступу до БД (розробник фірма X/Open). *Для MySQL – ODBC-драйвер MyODBC. MyODBC представляє собою драйвер ODBC рівня 0 (з деякими можливостями рівня 1 і 2) для зєднання сумісного з ODBC додатку до MySQL. *Розробкою і підтримкою MySQL займається корпорація Oracle. *MySQL передбачена для розробки малих і середніх застосувань. *Гнучність СУБД MySQL забезпечується підтримкою великої кількості типів таблиць:\\ - таблиці //типу MyISAM// підтримують повнотекстовий пошук, - таблиці //типу InnoDB// – транзакції на рівні окремих записів. **Історія версій** *Перший внутрішній випуск MySQL – 1995 р. *Версія для Windows (Windows 95 і NT) – 1998 р. *Версія 3.23: 2001р. Версія 4.0: 2003р. *Версія 4.1: 2004р. Версія 5.0: 2005р. *Версія 5.1: 2008р. Версія 5.5: 2010р. *Версія 5.7: 2018р. *Версія 8.0.13: 2018. **MySQL 4.1. Нові можлилості:** *вкладені запити і похідні таблиці * нова система кодування і сортувння * більш швидкий і гнучкий протокол клієнт-сервер * захищенне через OpenSSL з'єднання кліент-сервер * підтримка кодування Юнікод (UTF-8 і UCS2); * стандартні просторові типи даних GIS для географічної інформації; * покращений повнотекстовий пошук у таблицях MyISAM; * межплатформенная сумісність; * MyISAM (для швидкого читання), InnoDB (транзакції, цілісніть); * кешування запитів; * реплікації (головний сервер – підлеглиий сервер); **MySQL 5.0. Нові можлилості:** *Розширена функціональність (майже повна підтримка стандарту SQL), яка ставить MySQL в один ряд з комерційними СУБД. * процедури і функції, які зберігаються в БД; * обробник помилок; * курсор; * трігер; * представлення; * системний словник. **MySQL 5.5** *Використання по замовчуванню типу InnoDB. * Покращені функції по секціюванню даних. * Новий механізм оптимізації вкладених запитів і JOIN-операцій. * Перероблена система внутрішніх блокувань. **MySQL 5.1** *Секціювання — можливість розбити велику таблицю на декілька частин, розміщених в різних файлових системах * Змінені декілька оператори для забезпечення більшої сумісності з стандартом SQL-2003. * Додатковий набір функцій для обробки XML (XML – eXtensible Markup Language «розширюванна мова розмітки». * Нові засоби діагностики проблем і утиліти для анализу продуктивності. Утиліта mysqlslap дозволяє провести тестування БД для визначення часу реакції на запити. * Підтримка всіх форматів стовпців MyISAM, розширена новим форматом «rows-in-block», який використовує сторінковий спосіб збереження даних, при якому дані в стовпцях можуть кешируватись. **Нові можливості MySQL 8.0** * підтримка Unicode 9.0 без необхідності додаткових компонентів * функції Windows та рекурсивный синтаксис SQL-запитів * фрагментація JSON (без руйнування даних). * расширенна підтримка нативних данных JSON і функцій збереження документів. * перехід на кодування Unicode по замовчуванню – одне з найбільш важлиіих змін * кодування latin1 більше не використовується в MySQL за замовчуванням. * підтримуються віконні функції, що дозволяють виконувати агреговані обчислення, зберігаючи при цьому в результатах запиту доступ до окремих рядків. Аналогічно це реалізовано у деяких конкурентів (пр. PostgreSQL). * є можливість використовування рекурсивних виразів, що дозволяє виконувати рекурсивні операції як частину запиту без використання курсору, що призводить до зниження продуктивності. * з'явилася підтримка JSON. Це зробило MySQL конкурентоспроможною з СУБД NoSQL * з підтримкою JSON з'явились нові можливості зберігання документів. Операції читання та запису документів узгодженні в транзакціях MySQL * дані про місцезнаходження, які зберігалися у відкритому форматі GeoJSON, тепер можна індексувати, завдяки чому можна здійснювати пошук і за критерієм близькості розташування. **Основні утиліти MySQL**\\ В склад дистрибутива MySQL входять наступні утиліти: * mysqld - сервер MySQL * mysql - кліент командного рядка * mysqladmin - адміністрування серверу * mysqlaccess - перевірка привілеїв користувача * mysqlshow - показує, з якими БД працює сервер, які таблиці в БД і.т.д. * mysqldump - створення дампа вмісту БД * isamchk - перевірка, ремонт таблиць MyISAM