Mysql - це

MySQL (МФА: [maɪ ˌɛskjuːɛl]) [4] - вільна система управління базами даних. Розробка та підтримка сайта MySQL здійснює корпорація Oracle. отримала права на торговельну марку разом з поглиненої Sun Microsystems. яка раніше придбала шведську компанію MySQL AB. Продукт поширюється як під GNU General Public License. так і під власною комерційною ліцензією. Крім цього розробники створюють функціональність за замовленням ліцензійних користувачів, саме завдяки такому замовленню майже в найраніших версіях з'явився механізм реплікації.







MySQL є рішенням для малих і середніх додатків. Входить до складу серверів WAMP. AppServ. LAMP і в портативні збірки серверів Денвер. XAMPP. Зазвичай MySQL використовується як сервер, до якого звертаються локальні або видалені клієнти, проте в дистрибутив входить бібліотека внутрішнього сервера, що дозволяє включати MySQL в автономні програми.

Гнучкість СУБД MySQL забезпечується підтримкою великої кількості типів таблиць: користувачі можуть вибрати як таблиці типу MyISAM. що підтримують повнотекстовий пошук, так і таблиці InnoDB. підтримують транзакції на рівні окремих записів. Більш того, СУБД MySQL поставляється із спеціальним типом таблиць EXAMPLE, що демонструє принципи створення нових типів таблиць. Завдяки відкритій архітектурі і GPL-ліцензуванню, в СУБД MySQL постійно з'являються нові типи таблиць.

Спільнотою розробників MySQL створені різні відгалуження коду, такі як Drizzle (англ.), OurDelta, Percona Server, і MariaDB. Всі ці відгалуження вже існували на момент поглинання компанії Sun корпорацією Oracle.

Про походження MySQL

Логотип MySQL у вигляді дельфіна носить ім'я «Sakila». Він був вибраний з великого списку запропонованих користувачами «імен дельфіна». Ім'я «Sakila» було відправлено Open Source -разработчик Ambrose Twebaze.

ліцензування

MySQL має подвійне ліцензування. MySQL може поширюватися відповідно до умов ліцензії GPL. Однак за умовами GPL, якщо яка-небудь програма включає вихідні коди MySQL, то вона теж повинна розповсюджуватися за ліцензією GPL. Це може розходитися з планами розробників, які не бажають відкривати вихідні тексти своїх програм. Для таких випадків передбачена комерційна ліцензія, яка також забезпечує якісну сервісну підтримку.

Мови програмування

Історія випусків

Незважаючи на те, що версія 4.0 є застарілою, вона все ще має значне поширення. Основні можливості цієї версії:

  • практично повна реалізація ANSI SQL-99, плюс розширення;
  • межплатформенная сумісність;
  • незалежні типи таблиць (MyISAM для швидкого читання, InnoDB для транзакцій і посилальної цілісності);
  • транзакції;
  • підтримка SSL;
  • кешування запитів;
  • реплікація. один головний сервер на одного підлеглого, багато підлеглих на одного головного;
  • повнотекстова індексація і пошук з використанням типу таблиць MyISAM;
  • впроваджена бібліотека бази даних;
  • підтримка Юнікоду (UTF-8);
  • таблиці InnoDB. забезпечують відповідність вимогам ACID;
  • вбудований сервер, що дозволяє включати MySQL в автономні програми.






  • вкладені запити і похідні таблиці.
  • нова система кодувань і угруповань;
  • швидший і гнучкий протокол клієнт-сервер з підтримкою підготовлених запитів, що забезпечує їх оптимальне виконання;
  • нова програма установки і настройки для Microsoft Windows і Linux;
  • захищені через OpenSSL з'єднання клієнт-сервер;
  • високо-оптимізована бібліотека, яка може бути використана в сторонніх програмах;
  • повноцінна підтримка Юнікоду (UTF-8 і UCS2);
  • стандартні просторові типи даних GIS. для зберігання географічної інформації;
  • покращений повнотекстовий пошук і система допомоги.

Тип таблиць Maria

Maria (починаючи з версії 5.2.x - Aria) - розширена версія сховища MyISAM. з додаванням засобів збереження цілісності даних після краху.

Основні переваги Maria [11].

Гілка MySQL 5.5 базується на невипущеним серії MySQL 5.4 і містить ряд значних поліпшень, пов'язаних з підвищенням масштабованості та продуктивності, серед яких:

  • Використання за замовчуванням движка InnoDB.
  • Підтримка полусінхронного (semi-synchronous) механізму реплікації, заснованого на патчах до InnoDB від компанії Google.
  • Поліпшення функцій по секционированию даних. Розширений синтаксис для розбиття великих таблиць на кілька частин, розміщених в файлових системах (partitioning). Додані операції RANGE, LIST і метод оптимізації «partition pruning».
  • Новий механізм оптимізації вкладених запитів і JOIN-операцій.
  • Перероблена система внутрішніх блокувань.
  • Інтегровані патчі Google з оптимізацією роботи InnoDB на процесорах з великою кількістю ядер.

Версія MySQL 6.0 була заморожена на стадії альфа-тестування. Спочатку було прийнято рішення про створення версії 5.2, незабаром ця версія була перейменована в 6.0. Однак, пізніше інформація про MySQL 6.0 зникла з сайту, а розробники зосередилися на версії 5.5 і наступної за нею версії 5.6.

Технічні характеристики

Максимальні розміри таблиць

Максимальний розмір таблиць в MySQL 3.22 до 4 ГБ, в наступних версіях максимальний розмір до 8 млн ТБ (2 63 байт).

Розмір таблиці обмежений її типом. У загальному випадку тип MyISAM обмежений граничним розміром файлу в файлової системі операційної системи. Наприклад в NTFS цей розмір теоретично може бути до 32 ексабайт. У разі InnoDB одна таблиця може зберігатися в декількох файлах, які мають єдине табличний простір. Розмір останнього може досягати 64 терабайт.

На відміну від MyISAM в InnoDB є значне обмеження на кількість стовпців, яке можна додати в одну таблицю. Розмір сторінки пам'яті за замовчуванням становить 16 кілобайт, з яких під дані відведено 8123 байта. Розмір покажчика на динамічні поля становить 20 байт. Таким чином, в разі використання динамічного формату рядка (ROW_FORMAT = DYNAMIC), одна таблиця може вмістити максимум 409 стовпців типу blob або text.

локалізація

Починаючи з версії 4.1 в СУБД MySQL впроваджена нова система кодувань і угруповань. При використанні кодування Windows-1251, перед виконанням SQL-інструкцій необхідно налаштувати кодування з'єднання за допомогою операторів:

Ці три оператора еквівалентні викликом одного оператора:

Мінлива character_set_client встановлює кодування даних відправляються від клієнта, змінна character_set_results встановлює кодування даних відправляються клієнту, змінна character_set_connection встановлює кодування, в яку перетворюється інформація прийшла від клієнта, перед виконанням запиту на сервері.

При використанні Юникода UTF-8 цей оператор виглядає наступним чином:

Кодування ISO 8859-5 не підтримується.

Примітки

література

MySQL · MySQL Enterprise · MySQL Cluster







Схожі статті