MySQL select version та як дізнатися версію MySQL. MySQL select version і як дізнатися версію MySQL Як дізнатися версію mysql phpmyadmin

У MySQL select version()— запит, що повертає ім'я пакета та його версію. Ім'ям може бути сам MySQL або його форк, що розвивається самостійно - MaraiDB. Різниця між пакетами при вирішенні більшості завдань не помітна. MySQL 5.6 відповідає MaraiDB 10.

MySQL select version та як дізнатися версію MySQL

Дізнатися версію можна кількома способами. Найпростіший не вимагає знати пароль користувача сервера бази даних. Достатньо зайти по SSH і виконати mysql-version

mysql Ver 14.14 Distrib 5.5.55, для debian-linux-gnu (x86_64) using readline 6.3

Щоб використовувати спосіб, наведений у заголовку, потрібно направити SQL запит, для цього авторизуватися в консолі (можна робити це і скриптом).

Enter password:
Welcome to the MySQL monitor. Commands end with; or \g.
Your MySQL connection id is 41
Server version: 5.5.55-0ubuntu0.14.04.1 (Ubuntu)

Copyright (c) 2000, 2017, Oracle and/or its affiliates. Всі права захищені.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Інші назви можуть бути trademarks of their respective
власників.

Type "help;" or "\h" for help. Type "\c" для очищення поточного повідомлення.

Необхідна інформація є у висновку, який виникає після успішної авторизації. У цьому випадку використовується MySQL Server 5.5.55-0.

Також опинившись у консолі сервера баз даних, можна запросити версію таким чином:

+————————-+
| version() |
+————————-+
| 5.5.55-0ubuntu0.14.04.1 |
+————————-+
1 row in set (0.00 sec)

У всіх розглянутих випадках отримано однаково повну інформацію.

Читайте цикл статей, що описують основи роботи з MySQL().

Якщо скрипти сайту, що працюють з базою, написані під певну версію програмного забезпечення на сервері і використовується не вона, версію як і сам пакет можна змінити. Робиться це в Debian досить просто, наведений нижче алгоритм.

Зміна версії сервера баз даних на Debian

1) з використанням утиліти mysqldump створюється дамп всіх таблиць (у тому числі службових)

2) пакет видаляється apt-get remove mysql-server* && apt-get purge mysql-server*, також потрібно видалити /var/lib/mysql та /etc/mysql попередньо зробивши копію

3) у /etc/apt/source.list додається репозиторій, наведений на офіційному сайті (наприклад, для MariaDB 10 на Debian 8), інформація оновлюється apt-get update

3) також через apt-getставиться новий пакет після чого завантажуються дампи баз

Копії завжди потрібно мати на випадок непередбачених ситуацій. Для різних версій використовуються різні директиви в конфігураційних файлах і може знадобитися ручне їх виправлення.

Читайте про те, за допомогою якого була виведена версія пакета, саме вибірка є найчастішою операцією.

По-перше, потрібно прийняти рішення про те, що саме вам потрібно - найсвіжіший експериментальний випуск або остання стійка версія:

  • Якщо ви збираєтеся використовувати MySQL вперше або намагаєтеся виконати перенесення MySQL на деяку систему, для якої немає бінарного дистрибутива, то ми рекомендуємо починати зі стабільної версії (в даний час це версія 3.23). Слід пам'ятати, що це релізи MySQL перевіряються з допомогою тестів продуктивності MySQL і набору всебічних тестів перед кожним випуском (навіть для експериментальних випусків).
  • Якщо ж ви працюєте зі старою системою і бажаєте її модернізувати, але хочете уникнути можливих нестиковок при модернізації, то необхідно проводити заміну на найновішу версію в тій самій галузі, яку ви використовуєте (де тільки останній номер версії новий, ніж у вашої). У таких версіях ми намагаємося виправляти лише критичні помилки та робити лише невеликі, щодо безпечні зміни.

По-друге, потрібно прийняти рішення, чи ви хочете використовувати дистрибутив вихідного коду або бінарний дистрибутив. У більшості випадків краще зупинити свій вибір на бінарному дистрибутиві, якщо такий існує для вашої платформи, так як його зазвичай простіше встановити, ніж дистрибутив вихідного коду.

Установка з вихідного коду може виявитися кращою у таких випадках:

  • Якщо необхідно інсталювати MySQL в деякому явно заданому місці (стандартні бінарні поставки є "готовими до запуску"" в будь-якому місці, але, можливо, вам знадобиться ще більша гнучкість).
  • Щоб задовольнити різні вимоги користувачів, ми постачаємо дві різні бінарні версії: одна скомпільована з обробниками нетранзакційних таблиць (невеликий, швидкий бінарний код), а друга сконфігурована з найбільш важливими можливостями розширення, такими, як підтримують транзакції таблиці. Обидві версії компілюються з того самого вихідного коду. Усі власні клієнти MySQL можуть підключатися до обох версій. Бінарний дистрибутив розширеної версії MySQL маркується суфіксом -max і конфігурується з тими самими опціями, що і mysqld-max. See section 4.7.5 mysqld-max, розширений сервер mysqld. Якщо ви хочете використовувати пакет RPM MySQL-Max, то спочатку слід встановити стандартний пакет MySQL RPM.
  • Якщо вам потрібно конфігурувати mysqld з деякими додатковими властивостями, які відсутні у стандартних бінарних дистрибутивах. Нижче наводиться список найпоширеніших додаткових опцій, які, можливо, ви захочете використати:
    • --with-innodb
    • --with-berkeley-db
    • --with-raid
    • --with-libwrap
    • --with-named-z-lib (Це робиться для деяких бінарних дистрибутивів)
    • --with-debug[=full]
  • За замовчуванням бінарний дистрибутив зазвичай компілюється з підтримкою всіх кодувань і повинен працювати на різних процесорах з того самого сімейства процесорів. Якщо потрібно отримати швидший сервер MySQL, то можна перекомпілювати його за допомогою лише одного необхідного вам кодування, використовувати кращий компілятор (на зразок pgcc) або скористатися опціями компілятора, які краще оптимізовані для вашого процесора.
  • Якщо ви знайшли помилку і повідомили про неї команду розробників MySQL, то ви повинні надіслати патч, який слід застосувати до дистрибутива вихідного коду для виправлення помилки.
  • Якщо ви хочете читати (і/або модифікувати) вихідний код MySQL (C і C++), необхідно мати дистрибутив вихідного коду. Вихідний код – це завжди найкраща документація. Дистрибутиви вихідного коду також містять більше тестів та прикладів, ніж бінарні дистрибутиви.

У системі найменувань MySQL використовуються номери випусків, що складаються з трьох чисел і суфікса. Наприклад, випуск mysql-3.21.17-beta інтерпретується так:

  • Перше число (3) використовується для опису формату файлів. Усі випуски версії 3 мають той самий формат файлів.
  • Друге число (21) є рівень випуску. Зазвичай існує вибір двох можливостей. Одна представляє випуск стабільної гілки (нині 23) та друга - експериментальну гілка (нині 4.0). Зазвичай обидві гілки стабільні, але експериментальна версія може мати деякі примхи, можлива відсутність документації на нові властивості, або вона може не компілюватися на деяких системах.
  • Третє число (17) є номером версії у межах рівня випуску. Це число збільшується кожного нового дистрибутива. Зазвичай має сенс віддати перевагу останній версії для обраного рівня випуску.
  • Суфікс (beta) вказує на рівень стабільності цього випуску. Можливі наступні суфікси:
    • alpha вказує, що випуск містить великі розділи нового коду, який не протестований на 100%. Виявлені помилки (зазвичай їх немає) повинні бути задокументовані у розділі "Новини" (News). розділ See section D Історія змін та оновлень MySQL . У більшості випусків alpha присутні також нові команди та розширення. При роботі над alpha-випуском може відбуватися активна розробка, що включає значні зміни коду, але перед випуском тестується. У будь-якому випуску MySQL повинно бути відомих помилок.
    • beta означає, що новий код протестований. Не додаються нові властивості, які можуть спричинити пошкодження старого коду. Не повинно бути жодних відомих помилок. Версія змінюється з alpha на beta тоді, коли жодних повідомлень про критичні помилки в alpha -версії не надходить щонайменше протягом місяця і ми не плануємо додавати будь-які нові властивості, які могли б знизити надійність колишніх команд.
    • gamma є версією beta , яка майже закінчена і, схоже, працює добре. Додаються лише незначні виправлення. Це те, що у багатьох інших компаніях називається релізом.
    • Якщо немає суфіксу, це означає, що дана версія запускалася на багатьох різних комп'ютерних системах без повідомлень про помилки, крім помилок, що відносяться до специфіки платформ; для неї допускається лише виправлення критичних помилок. Саме тому такий випуск називаємо стабільним.

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

Зазначимо, що всі випуски протестовані щонайменше з наступними тестами:

Набір є частиною виробничої системи для замовника. Цей набір включає багато таблиць із сотнями мегабайт даних. Набір тестів продуктивності MySQL Ці тести працюють із набором загальновживаних запитів. Крім того, вони дозволяють побачити, чи справді останній пакет оптимізації робить код швидше. See section. Тест crash-me Тест намагається визначити, які функціональні можливості підтримує база даних та які її можливості та обмеження. See section 5.1.4 Набір тестів MySQL (MySQL Benchmark Suite) .

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

MySQL (розшифровується як вільна реляційна система управління базами даних) – це компактний багатопотоковий сервер баз даних, який відрізняється високою швидкістю роботи, стійкістю та простотою у використанні.

Спочатку розроблявся компанією TcX на вирішення внутрішніх завдань – максимально швидкої обробки великих баз даних. Усередині компанії використовується з 1996 року на сервері з більш ніж 40 БД, які містять 10,000 таблиць, з яких понад 500 мають понад 7 мільйонів рядків.

На сьогоднішній день розробкою та підтримкою MySQL займається корпорація Oracle, яка придбала Sun Microsystems 27 січня 2010, після чого і включила MySQL у лінійку своїх продуктів. Раніше (26 лютого 2008 року) Sun Microsystems заплатила за покупку MySQL AB 1 мільярд доларів США. Продукт поширюється як під GNU General Public License, і під власною комерційною ліцензією. Крім цього, розробники створюють функціональність на замовлення ліцензійних користувачів, саме завдяки такому замовленню майже в ранніх версіях з'явився механізм реплікації.

MySQL – це найбільш оптимальне рішення для малих та середніх програм. Вихідники сервера компілюються на безлічі платформ. Найповніше можливості сервера виявляються на Unix-серверах, де є підтримка багатопоточності, що дає значний приріст продуктивності. Входить до складу серверів WAMP, AppServ, LAMP та в портативні зборки серверів Денвер, XAMPP. Зазвичай MySQL використовується як сервер, до якого звертаються локальні або віддалені клієнти, проте дистрибутив входить бібліотека внутрішнього сервера, що дозволяє включати MySQL в автономні програми.
Завдяки підтримці величезної кількості типів таблиць MySQL є досить гнучким. Користувачі можуть вибирати таблиці з повнотекстовим пошуком MyISAM, та таблиці з транзакціями в окремих записах InnoDB. Крім того, MySQL поставляється зі спеціальним типом таблиць EXAMPLE, що демонструє принципи створення нових типів таблиць. Завдяки цьому, а також відкритої архітектури та GPL-ліцензування, MySQL можна додавати нові типи таблиць практично нескінченно.

MySQL сервер є безкоштовним для некомерційного використання. Інакше необхідно придбати ліцензію, вартість якої на поточний момент становить 190 EUR.

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

Виникнення MySQL

До 1994 року на ринку були представлені головним чином бази даних, призначені для роботи зі значними обсягами даних і складними взаємозв'язками, які мали різні можливості, але в той же час вимагали значних обчислювальних ресурсів. До таких баз даних відносяться Oracle, Informix та Sybase. СУБД, які підтримували SQL і були при цьому доступні за ціною, в цей час не було.

Великі корпорації та університети могли собі дозволити придбати потужні обчислювальні комплекси, а невеликі організації та користувачі користувалися слабкими настільними базами даних, такими, як Postgres, в якій використовувався різновид мови QUEL (PostQUEL), але який, на жаль, вимагав таких же ресурсів, що і її аналоги, але не давала переваги використання SQL як мови запитів.

Тоді якийсь Девід Хьюз (який згодом став після публікації своєї роботи в Інтернеті, відомим як Bamby), який писав на той момент дисертацію в Університеті Бонд (Австралія), зайнявся розробкою проекту Minerva Network Management System – системою спостереження та контролю з однієї або декількох точок за групою систем. Головним елементом проекту повинна була стати база даних для зберігання інформації про всі комп'ютери в мережі. Спочатку Х'юз вирішив використати Postgres. Однак колеги запропонували використовувати SQL як мову запитів для Minerva, оскільки SQL є найпоширенішою мовою запитів, і, використовуючи його, Minerva могла стати доступною в будь-якій точці планети, де стоїть СУРБД, що підтримує SQL. Це і послужило поштовхом до створення MySQL.

Х'юз вирішив сам створити програму, яка буде в режимі реального часу транслювати SQL у PostQUEL. Сою програму він назвав miniSQL, або mSQL. Вона перехоплювала пропозиції SQL, що посилаються Minerva, перетворювала їх у PostQUEL і пересилала результат у Postgres. Деякий час така ситуація влаштовувала Х'юза. Однак у результаті подальшого зростання Minerva, стало очевидно, що на тих обмежених ресурсах, які їй доступні, підтримувати той невеликий набір характеристик, який їй необхідний, ні Postgres, ні якась велика СУРБД не зможуть. Так, наприклад, щоб реалізувати можливість одночасного підключення Minerva відразу до кількох баз даних, Postgres вимагав одночасного запуску кількох примірників сервера бази даних.

Для вирішення цих проблем Хьюз проаналізував роботу Minerva, і, виявилося, основними запитами, що генеруються Minerva, були: insert, delete і select. Оскільки у Хьюза вже був mSQL, який здійснював трансляцію SQL, йому потрібно було лише створення сервера бази даних, який задовольняє його потребам.

І тут у гру вступає Майкл Монті Віденіус, який і вважається винахідником MySQL. У 1979 році він розробив засіб управління базами даних, який називався UNIREG. Надалі UNIREG була розширена для підтримки великих баз даних і була переписана кількома мовами. У 1994 році компанія TcX стала розробляти додатки для www з використанням UNIREG. Однак, у зв'язку з великими витратами, UNIREG не могла успішно використовуватися для динамічної генерації Web-сторінок. Тому Віденіус вирішив зв'язатися з автором mSQL, Хьюзом, щоб запропонувати йому підключити mSQL до оброблювача B+ ISAM в UNIREG. Однак Х'юз успішно просунувся на шляху до mSQL 2, і компанія вирішила створити сервер баз даних під свої потреби.

У TcX взяли за основу UNIREG і використовували утиліти сторонніх розробників для mSQL, написали API для своєї системи, який спочатку сильно збігався з API для mSQL. Однак це дозволяло будь-якому користувачеві mSQL, який бажає перейти на сервер баз даних ТсХ, внести в свій код незначні зміни. Вихідний код нової бази даних був повністю оригінальним. Таким чином, у травні 1995 року компанія мала базу даних MySQL 1.0, що повністю задовольняє потребам компанії.

В 1995 Девід Оксмарк, що працює в компанії Detron HB і є бізнес-партнером фірми, почав активно пропонувати ТсХ поширювати СУБД MySQL через інтернет. Девід навіть взяв участь у роботі над документацією. В результаті версія 3.11.1 СУБД MySQL була випущена у 1996 році у вигляді бінарного дистрибутива для роботи під управлінням ОС Linux і Solaris. Сьогодні MySQL працює на багатьох платформах та доступний як у двійкових кодах, так і у вихідних текстах.

На сьогоднішній день MySQL став найпопулярнішим засобом для роботи з базами даних у РНР. Це пов'язано насамперед про те, що підтримка цього сервера входить у постачання РНР. До того ж, популярності MySQL сприяють досить хороші характеристики та широкий набір стандартних інтерфейсних функцій, які дуже прості у використанні.

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

MySQL має відмінну переносимість і може, з тим самим успіхом, використовуватися на комерційних операційних системах, таких як Solaris, Irix або Windows, і на будь-якій апаратурі аж до потужних серверів. Більше того, як і її більш «дорогі суперники», вона дозволяє обробляти великі бази даних, що містять мільйони записів.

Назва та логотип

Щодо назви, то існує кілька версій її виникнення. Перша версія говорить про те, що використання префіксу "my" пояснюється тим, що в ТсХ базовий каталог, а також значна кількість бібліотек та утиліт протягом десятка років позначалися саме таким префіксом. Тому логічно його було використати й у цьому випадку.

Друга версія, більш сентиментальна, спирається на те, що Майкл Монті Віденіус назвав новий продукт саме MySQL на ім'я своєї дочки – My. Дочка Віденіуса дійсно звати My, а сам він не спростовує ні першу, ні другу версію.

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

Можливості MySQL

Головна особливість MySQL у тому, що він підтримує мову запитів SQL у стандарті ANSI 92, і крім цього має безліч розширень до цього стандарту, яких немає в жодній іншій системі керування базами даних.
Короткий перелік можливостей MySQL:

1. Підтримується ефективна робота необмеженої кількості користувачів, які одночасно працюють з базою даних.

2. Кількість рядків у таблицях може сягати 50 млн.

3. Максимально швидке виконання команд. Існує думка, що MySQL – і зовсім найшвидший сервер із існуючих.

4. Проста та ефективна система безпеки.

Приклад діаграми в MySQL


Недоліки MySQL

Втім, і у MySQL є окремі недоліки. Головним чином це пов'язано з тим, що для досягнення такої високої швидкості роботи розробникам довелося пожертвувати деякими вимогами до реляційних систем управління базами даних.

Отже, у MySQL відсутні:

1 . Підтримка вкладених запитів типу SELECT * FROM table1 WHERE id IN (SELECT id FROM table2) (у ранніх версіях).

2 . Не реалізовано підтримку транзакцій. Натомість пропонується використовувати LOCK/UNLOCK TABLE.

3 . Немає підтримки зовнішніх (foreign) ключів.

4 . Немає підтримки тригерів і процедур, що зберігаються.

5 . Немає підтримки уявлень (VIEW). У версії 3.23 планується можливість створювати уявлення.

За словами авторів, саме пункти 2-4 дали можливість досягти високої швидкодії. Їхня реалізація істотно знижує швидкість сервера. Ці можливості не є критичними при створенні Web-додатків, що у поєднанні з високою швидкодією та малою ціною дозволило серверу набути великої популярності.

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

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

Платформи

MySQL портована на велику кількість платформ: AIX, BSDi, FreeBSD, HP-UX, Linux, Mac OS X, NetBSD, OpenBSD, OS/2 Warp, SGI IRIX, Solaris, SunOS, SCO OpenServer, UnixWare, Tru64, Windows 95, Windows 98, Windows NT, Windows 2000, Windows XP, Windows Server 2003, WinCE, Windows Vista та Windows 7. Існує також порт MySQL OpenVMS. Важливо відзначити, що на офіційному сайті СУБД для вільного завантаження надаються не тільки вихідні коди, а й відкомпільовані та оптимізовані під конкретні операційні системи готові модулі СУБД MySQL, що виконуються.

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

MySQL має API для мов Delphi, C, C++, Ейфель, Java, Лісп, Perl, PHP, Python, Ruby, Smalltalk, Компонентний Паскаль та Tcl, бібліотеки для мов платформи.NET, а також забезпечує підтримку для ODBC за допомогою ODBC-драйвера MyODBC.

Історія версій

Перший внутрішній випуск MySQL відбувся 23 травня 1995 [джерело не вказано 1224 дня].
Версія для Windows систем (Windows 95 та NT) випущена 8 січня 1998 року.
Версія 3.23: бета-версія у червні 2000, реліз у січні 2001.
Версія 4.0: бета у серпні 2002, реліз у березні 2003.
Версія 4.1: бета у червні 2004, реліз у жовтні 2004.
Версія 5.0: бета у березні 2005, реліз у жовтні 2005.
Версія 5.1: розробка велася з листопада 2005 року, реліз у листопаді 2008 року.
Версія 5.4: бета у квітні 2009, не була випущена.
Версія 5.5: реліз у грудні 2010 року.
Версія 5.6: у розробці (5.6.6 m9 7 серпня 2012).

Історія версій



MySQL 4.0

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

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

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

MySQL 5.0

Версія MySQL 5.0 була випущена 24 жовтня 2005 року, у цій версії значно розширено функціональність, яка ставить MySQL в один ряд із комерційними СУБД. Якщо раніше СУБД MySQL звинувачували в недостатній підтримці стандарту SQL, то з появою п'ятої версії цієї популярної бази даних з'явилася практично повна підтримка стандарту SQL. MySQL 5.0 містить такі нововведення:
збережені процедури та функції;
обробники помилок;
курсори;
тригери;
уявлення;
інформаційна схема (так званий системний словник, що містить метадані).

MySQL 5.1

Версія MySQL 5.1 продовжує шлях до стандарту SQL:2003. MySQL 5.1 містить такі нововведення:

Сегментування - можливість розбити одну велику таблицю на кілька частин, розміщених у різних файлових системах, виходячи з певної користувачем функції. За певних умов це може дати серйозне збільшення продуктивності та, крім того, полегшує масштабування таблиць.
Змінено поведінку ряду операторів для забезпечення більшої сумісності зі стандартом SQL2003.
Порядкова реплікація (row-based replication), коли у бінарний лог записуватиметься лише інформація про реально змінені рядки таблиці замість оригінального (і, можливо, повільного) тексту запиту. Построчную реплікацію можна використовувати лише певних типів sql-запросов, в термінах MySQL - змішана реплікація (mixed replication).
Вбудований планувальник робіт, що періодично запускаються. За синтаксисом додавання завдання схоже додавання тригера до таблиці, з ідеології - на crontab.
Додатковий набір функцій обробки XML, реалізація підтримки XPath.
Нові засоби діагностики проблем та утиліти для аналізу продуктивності. Розширені можливості управління вмістом лог-файлів, логи тепер можуть бути збережені і в таблицях general_log і slow_log. Утиліта mysqlslap дозволяє провести тестування навантаження БД із записом часу реакції на кожен запит.
Для спрощення операції оновлення підготовлено утиліту mysql_upgrade, яка виконає перевірку всіх існуючих таблиць на предмет сумісності з новою версією, та за необхідності виконає належні коригування.
MySQL Cluster відтепер випущений як окремий продукт, що базується на MySQL 5.1 та сховищі NDBCLUSTER.
Значні зміни в роботі MySQL Cluster, такі як, наприклад, можливість зберігання табличних даних на диску.
Повернення до використання вбудованої бібліотеки libmysqld, яка була відсутній у MySQL 5.0.
API для плагінів, що дозволяє завантажувати сторонні модулі, що розширюють функціональність (наприклад, повнотекстовий пошук) без перезапуску сервера.
Реалізація парсера повнотекстового пошуку як plug-in.
Новий тип таблиць Maria (стійкий до збоїв клон MyISAM).

Тип таблиць Maria

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

У разі краху здійснюється відкат результатів виконання поточної операції або повернення до команди LOCK TABLES. Реалізація через ведення логів операцій.
Можливість відновлення стану будь-якої точки в журналі операцій, включаючи підтримку CREATE/DROP/RENAME/TRUNCATE. Може бути використане для створення інкрементальних резервних копій через періодичне копіювання журналу операцій.
Підтримка всіх форматів стовпців MyISAM, розширена новим форматом «rows-in-block», що використовує сторінки способу зберігання даних, при якому дані в стовпцях можуть кешуватися.
У майбутньому буде реалізовано два режими: транзакційний та без відображення в журналі транзакцій для некритичних даних.
Розмір сторінки даних дорівнює 8Кб (MyISAM 1Кб), що дозволяє досягти більш високої продуктивності для індексів по полях фіксованого розміру, але повільніше у разі індексування ключів змінної довжини.

MySQL 5.5

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

MySQL 6.0

Версія MySQL 6.0 була заморожена на стадії альфа-тестування. Спочатку було прийнято рішення про створення версії 5.2, незабаром ця версія була перейменована на 6.0. Однак пізніше інформація про MySQL 6.0 зникла з сайту, а розробники зосередилися на версії 5.5 і наступній за нею версії 5.6.
Одним з основних нововведень версії 6.0 планувався новий тип таблиць Falcon, розроблений як потенційна заміна для InnoDB компанії Innobase, придбаної компанією Oracle. У зв'язку з придбанням у 2010 році Sun Microsystems тим самим Oracle, доля Falcon залишається під питанням.

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

Максимальний розмір таблиць MySQL 3.22 до 4 ГБ, в наступних версіях максимальний розмір до 8 млн ТБ (263 байт).
Розмір таблиці обмежений її типом. Загалом тип MyISAM обмежений граничним розміром файлу у файловій системі операційної системи. Наприклад, у NTFS цей розмір теоретично може бути до 32 ексабайт. У випадку InnoDB одна таблиця може зберігатися у кількох файлах, що становлять єдиний табличний простір. Розмір останнього може сягати 64 терабайт.

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

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

SET character_set_client="cp1251";
SET character_set_results="cp1251";
SET character_set_connection="cp1251";

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

SET NAMES "cp1251"

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

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

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