+38/050/370-3627
+38/093/220-0872
+38/044/257-2444
Новини

Oracle представила перший стабільний реліз СУБД MySQL 8.0

Oracle представила перший стабільний реліз СУБД MySQL 8.0. Версія 8.0 обумовлена ​​зміною нумерації версій, реліз випущений за 5.7 замість версії 5.8. Складання MySQL Community Server 8 сформовано для всіх основних дистрибутивів Linux, FreeBSD, macOS та Windows.

Ключові покращення MySQL 8.0:

  • Додані віконні функції (функція Windows або аналітичні функції), що дозволяють для кожного рядка запиту виконати обчислення, використовуючи рядки, пов'язані з поточним рядком. На відміну від агрегатних функцій над згрупованими рядками, які згортають згрупований набір рядків в один рядок, віконні функції агрегують для кожного рядка в результуючому наборі. Реалізовані як спеціальні віконні функції RANK, LAG, ROW_NUMBER, FIRST_VALUE, LEAD, LAG та NTILE, так і можливість застосування деяких агрегатних функцій у формі віконних (наприклад, COUNT, SUM, AVG, MIN, MAX);
  • Підтримка рекурсивних та не рекурсивних узагальнених табличних виразів (Common Table Expression), що дозволяють використовувати тимчасові іменовані результуючі набори, що задаються за допомогою оператора WITH;
  • В InnoDB додано підтримку опцій NOWAIT і SKIP LOCKED, які можна використовувати для керування поведінкою за наявності блокувань у момент виконання виразів "SELECT ... FOR SHARE" і "SELECT ... FOR UPDATE". При вказівці NOWAIT керування буде повернуто відразу з виведенням помилки, якщо запитаний рядок заблокований іншою транзакцією, а при "SKIP LOCKED" заблоковані рядки будуть виключені з результуючого набору;
  • Підтримка невидимих ​​індексів (Invisible Indexes), які ніколи не використовуються оптимізатором. Управління видимістю індексу здійснюється за допомогою ключових слів VISIBLE та INVISIBLE. Звичайний видимий індекс може бути перетворений на невидимий і навпаки. Невидимі індекси можна використовувати для тестування впливу того чи іншого індексу на продуктивність, без фізичного видалення цього індексу (індекс можна перевести в режим невидимого, вивчити зміну продуктивності та повернути назад);
  • Підтримка низхідних індексів (descending indexes), що дозволяють використовувати оператор "DESC" при визначенні індексу для збереження значень ключів у порядку зменшення. У роботі подібні індекси не вимагають сканування у зворотному порядку, що значно збільшує ефективність роботи з меншими значеннями;
  • Реалізовано функцію GROUPING(), яка дозволяє відокремити NULL-значення, отримані в результаті агрегування рядків при групуванні GROUP BY з використанням таких розширень, як ROLLUP, від NULL-значень у звичайних згрупованих рядках;
  • Додано нові підказки для керування поведінкою оптимізатора (задаються всередині коментаря /*+ */, що вказується відразу після ключових слів SELECT, INSERT, REPLACE, UPDATE та DELETE): INDEX_MERGE і NO_INDEX_MERGE для керування поведінкою злиття індексів для окремих запитів, JOIN_FIXED_ORDER, JO управління порядком обробки таблиць під час злиття, SET_VAR для встановлення системної змінної в контексті поточного виразу;
  • Додано нові функції для маніпуляції даними у форматі JSON:
    • Розширено синтаксис для визначення діапазонів значень у JSON, наприклад "SELECT JSON_EXTRACT('[1, 2, 3, 4, 5]', '$[1 to 3]');".
    • Додано підтримку табличних функцій, що дозволяють використовувати SQL для даних JSON (за допомогою функції JSON_TABLE() створюється реляційне представлення даних JSON).
    • Додано агрегатні функції JSON_ARRAYAGG() для генерації масивів JSON та JSON_OBJECTAGG() для генерації об'єктів JSON.
    • Додані функції злиття JSON_MERGE_PATCH() та JSON_MERGE_PRESERVE().
    • Додано функцію JSON_PRETTY() для приведення блоків JSON до виду;
    • Додано функцію JSON_STORAGE_SIZE() для обчислення розміру, який займає об'єкт JSON;
    • Від 1.2 до 18 разів збільшено продуктивність сортування та угруповання значень JSON;
  • Додано режим роботи як сховища документів (Document Store), до якого можна звертатися з використанням методів NoSQL (колекції JSON без попередньо визначеної схеми зберігання). Функціональність реалізована за допомогою плагіну mysqlxplugin;
  • Додано підтримку просторових типів даних, індексів та функцій, що дозволяють працювати з географічними координатами та картографічними даними;
  • За Умовчання задіяне кодування UTF8MB4 (раніше застосовувалося кодування latin1) і підтримка якості локалі "Collation", що дозволяє задавати правила сортування і способи зіставлення з урахуванням сенсу знаків. Порівняно з версією MySQL 5.7 суттєво (до 20 разів) збільшено продуктивність сортування даних у кодуванні UTF8MB4;
  • Додано нові функції для використання регулярних виразів REGEXP_INSTR(), REGEXP_LIKE(), REGEXP_SUBSTR() та довгоочікувану функцію заміни за допомогою регулярних виразів REGEXP_REPLACE(). Крім того, в регулярних висловлюваннях реалізовано коректну роботу з багатобайтовими Unicode-символами;
  • Transactional Data Dictionary - новий механізм зберігання системних даних, що підтримує транзакції та реалізований у вигляді набору SQL-таблиць, що зберігаються в окремому табличному просторі InnoDB (зберігання системних даних та метаданих у MyISAM припинено);
  • Нова система ролей (іменованих колекцій привілеїв), що дозволяє делегувати та блокувати повноваження для груп користувачів;
  • Додано можливість перейменування стовпців (ALTER TABLE ... RENAME COLUMN old_name TO new_name);
  • За замовчуванням плагін автентифікації caching_sha2_password використовує SHA-256 для хешування паролів, але в порівнянні з плагіном sha256_password забезпечує більш високу продуктивність за рахунок використання кешування;
  • Додано захист від атак по підбору паролів. У разі кількох невдалих спроб автентифікації між наступними спробами додається затримка;
  • Додано команду "SET PERSIST", що дозволяє змінювати значення змінних конфігурацій із збереженням їх між перезапусками. Також додана команда RESTART, що дозволяє віддалено перезапустити MySQL за наявності відповідних повноважень;
  • В якості бібліотеки з реалізацією TLS/SSL за замовчуванням задіяний OpenSSL;
  • Додано підтримку шифрування Undo- та Redo-логів;
  • Проведено різні оптимізації продуктивності, наприклад, у тесті upto при 4 одночасно працюючих клієнтах досягнуто майже дворазове прискорення - продемонстровано продуктивність на рівні 1.8 млн запитів на секунду. Швидкість запитів до таблиць Performance Schema зросла до 30 разів, а таблиць Information Schema до 100 разів.

 

Інші новини

Найкраща ціна