Статьи

MySQL

  1. MySQL 4.0 [ правити | правити код ]
  2. MySQL 4.1 [ правити | правити код ]
  3. MySQL 5.0 [ правити | правити код ]
  4. MySQL 5.1 [ правити | правити код ]
  5. Тип таблиць Maria [ правити | правити код ]
  6. MySQL 5.5 [ правити | правити код ]
  7. MySQL 6.0 [ правити | правити код ]
  8. MySQL 5.7 [ правити | правити код ]
  9. MySQL 8.0 [ правити | правити код ]
  10. Максимальні розміри таблиць [ правити | правити код ]
  11. Проблема з Юникоде [ правити | правити код ]

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

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

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

26 лютого 2008 року Sun Microsystems придбала MySQL AB за 1 млрд доларів [8] , 27 січня 2010 року Oracle придбала Sun Microsystems за 7,4 млрд доларів [9] і включила MySQL в свою лінійку СУБД [10] .

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

MySQL виникла як спроба застосувати mSQL до власних розробок компанії: таблицям, для яких використовувалися ISAM - підпрограми низького рівня. В результаті був вироблений новий SQL -інтерфейс, але API -інтерфейс залишився в спадок від mSQL. Звідки походить назва «MySQL» - достеменно невідомо. Розробники дають два варіанти: або тому, що практично всі напрацювання компанії починалися з префікса «My ...» (з англ. - «моє ...»), або на честь дочки Мю ( фін. My) одного з розробників системи Мікаеля Віденіус [11] [12] .

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

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

MySQL портована на велику кількість платформ: AIX , BSDi , FreeBSD , HP-UX , Linux , macOS , 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 і Windows 10 . Існує також порт MySQL до OpenVMS . Важливо відзначити, що на офіційному сайті СУБД для вільного завантаження надаються не тільки вихідні коди, а й відкомпілювалися і оптимізовані під конкретні операційні системи готові виконувані модулі СУБД MySQL.

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

MyODBC є драйвер ODBC (2.50) рівня 0 (з деякими можливостями рівнів 1 і 2) для під'єднання сумісного з ODBC додатки до MySQL. MyODBC працює на всіх системах Microsoft Windows і на більшості платформ Unix .

[15] [16] [17] [18] [19] [20] [21]

  • Перший внутрішній випуск MySQL відбувся 23 травня 1995 [ Джерело не вказано 3513 днів ].
  • Версія для 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.43 від 22.10.2018). [22]
  • Версія 5.7: в розробці (останній реліз - 5.7.24 від 22.10.2018). [23]

MySQL 4.0 [ правити | правити код ]

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

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

MySQL 4.1 [ правити | правити код ]

Рекомендованої версією на 2005 рік є MySQL 4.1, що вийшла 27 жовтня 2004 . Вона містить такі нововведення:

  • вкладені запити і похідні таблиці.
  • нова система кодувань і угруповань;
  • швидший і гнучкий протокол клієнт-сервер з підтримкою підготовлених запитів, що забезпечує їх оптимальне виконання;
  • нова програма установки і настройки для 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 містить наступні нововведення [24] [25] .

  • сегментування - можливість розбити одну велику таблицю на кілька частин, розміщених в різних файлових системах, грунтуючись на певній користувачем функції. При певних умовах це може дати серйозне збільшення продуктивності і, крім того, полегшує масштабування таблиць.
  • Змінено поведінку ряду операторів, для забезпечення більшої сумісності зі стандартом 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 [26] .

  • У разі краху проводиться відкат результатів виконання поточної операції або повернення в стан до команди 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 5.7 [ правити | правити код ]

Перша версія гілки MySQL 5.7.1 анонсована 23 квітня 2013. Версія MySQL 5.7.8 адаптована для Debian 8 і Ubuntu 15.04. Останній реліз - 5.7.24 від 22.10.2018. [23]

MySQL 8.0 [ правити | правити код ]

Версія 8.0.0 була випущена 12.09.2016, але офіційно придатною до повсюдного використання була версія 8.0.11, випущена 19.04.2018. Остання версія - 8.0.16 (реліз від 25.04.2019) [27]

Максимальні розміри таблиць [ правити | правити код ]

Максимальний розмір таблиць в MySQL 3.22 до 4 гігабайт, в наступних версіях обмежень немає.

Розмір таблиці обмежений її типом. У загальному випадку тип 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';

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

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

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

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

Проблема з Юникоде [ правити | правити код ]

MySQL не дозволяє коректно застосовувати Регулярні вирази (Оператори REGEXP і RLIKE) на рядках в мультибайтних кодуваннях, наприклад, для Юнікоду (UTF-8) [28] . При необхідності таких операцій доводиться переходити на однобайтові кодування, наприклад російську Win-1251 або KOI-8 .

  • MySQL (МФА:   [Maɪ ˌɛskjuːɛl]   ) -   вільна   реляційна система управління базами даних   [7] на Вікісховища має мультимедійні дані за темою MySQL
  • В. Васвані. MySQL: використання і адміністрування = MySQL Database Usage & Administration. - М.: «Пітер» , 2011. - 368 с. - ISBN 978-5-459-00264-5 .
  • Стів Суерінг, Тім Конверс, Джойс Парк. PHP і MySQL. Біблія програміста, 2-е видання = PHP 6 and MySQL 6 Bible. - М.: «Діалектика» , 2010. - 912 с. - ISBN 978-5-8459-1640-2 .
  • Роберт Шелдон, Джоффрі Мойї. MySQL 5: базовий курс = Beginning MySQL. - М.: «Діалектика» , 2007. - 880 с. - ISBN 978-5-8459-1167-4 .
  • Кузнецов Максим, Сімдянов Ігор. MySQL на прикладах. - СПб .: «БХВ-Петербург» , 2008. - С. 952. - ISBN 978-5-9775-0066-1 .
  • Поль Дюбуа. MySQL, 3-е видання = MySQL, 3ed. - М.: «Вільямс» , 2006. - +1168 с. - ISBN 5-8459-1119-2 .
  • Кузнецов Максим, Сімдянов Ігор. MySQL 5. В оригіналі. - СПб .: «БХВ-Петербург» , 2006. - С. 1024. - ISBN 5-94157-928-4 .
  • Кузнецов Максим, Сімдянов Ігор. Самовчитель MySQL 5. - СПб .: «БХВ-Петербург» , 2006. - С. 560. - ISBN 5-94157-754-0 .

Новости