Oracle-ը ստեղծել է MySQL 9.1.0 DBMS-ի նոր մասնաճյուղ: MySQL Community Server 9.1.0 կառուցումները պատրաստված են բոլոր հիմնական Linux, FreeBSD, macOS և Windows բաշխումների համար: Որպես անցյալ տարի ներկայացված թողարկման նոր մոդելի մաս, MySQL 9.1-ը դասակարգվում է որպես «Նորարարություն» մասնաճյուղ, որը կներառի նաև հաջորդ հիմնական թողարկումը՝ MySQL 9.2-ը: Նորարարական մասնաճյուղերը խորհուրդ են տրվում նրանց, ովքեր ցանկանում են վաղաժամ մուտք գործել նոր գործառույթներ, հրապարակվում են 3 ամիսը մեկ և աջակցվում են միայն մինչև հաջորդ նշանակալի թողարկման հրապարակումը (օրինակ, 9.1 մասնաճյուղի հայտնվելուց հետո 9.0 մասնաճյուղի աջակցությունը դադարեցվել է: ). Հաջորդ ամառ նրանք նախատեսում են ստեղծել LTS թողարկում, որը խորհուրդ է տրվում իրականացումների համար, որոնք պահանջում են կանխատեսելիություն և անփոփոխ վարքի երկարաժամկետ պահպանում: LTS մասնաճյուղից հետո կձևավորվի նոր Innovation մասնաճյուղ՝ MySQL 10.0:
Հիմնական փոփոխություններ MySQL 9.1-ում.
- «ԵԹԵ ՉԿԱ» արտահայտության աջակցությունը ավելացվել է «ՍՏԵՂԾԵԼ ՏԵՍՔ» գործողությանը, որը թույլ է տալիս կազմակերպել դիտման ստեղծումը միայն այն դեպքում, եթե նշված անունով դիտում արդեն գոյություն չունի և խուսափել սխալ վերադարձնելուց, եթե դիտումը: արդեն ստեղծվել է։
- Միայն կարդալու գործողություններ կատարելիս ձգանների բեռնումը դադարեցվեց: Նախկինում գործարկիչները բեռնվում էին ամեն անգամ, երբ մուտք էին գործում աղյուսակ, ինչը վատնում էր հիշողությունը և ստեղծում էր պրոցեսորի բեռնվածություն այն իրավիճակներում, երբ գործարկիչները չէին օգտագործվում (օրինակ՝ SELECT հարցումները կատարելիս): MySQL 9.1-ում գործարկիչների մշակումն ու բեռնումը բաժանված է երկու փուլի՝ տրիգերի մասին մետատվյալների ընթերցում և գործարկիչի վերլուծություն + գործարկում: Առաջին փուլում ձեռք բերված տվյալները պահվում են մեկ անգամ, այնուհետև տարածվում են տարբեր գործարկիչների հետ: Գործարկիչը վերլուծվում և գործարկվում է միայն այն արտահայտությունների համար, որոնք փոխում են տվյալները: Ի հավելումն, հիշողության սպառումը նվազեցնելու համար, գործարկիչներում սխալների հետ աշխատելու համար բուֆերներ ստատիկ կերպով հատկացնելու փոխարեն, մենք ըստ անհրաժեշտության անցանք դինամիկ հիշողության բաշխման:
- EXPLAIN գործողության արդյունքը ընդլայնվել է՝ ցույց տալու տեղեկատվություն բազմաբնույթ տիրույթի ընթերցումների օգտագործման և կիսաինտեգրման ռազմավարության օգտագործման մասին, որտեղ JOIN գործողությունները մշակում են տողեր միայն մեկ աղյուսակից:
- «CREATE DATABASE» և «DROP DATABASE» օպերացիաների ատոմային կատարումը տրամադրվում է ձախողումներից պաշտպանվելու համար այս գործողությունների կատարման ընթացքում ֆայլային համակարգի մակարդակում վթարի կամ սխալների դեպքում: Օրինակ, նախկինում, երբ «ՍՏԵՂԾԵԼ ՏՎՅԱԼՆԵՐԻ ԲԱԶԱՆ» խափանվում էր, կարող էր ստեղծվել տվյալների բազայի ոչ լիարժեք պահպանման կառուցվածք, որը մաքրելու համար պահանջվում էր ձեռքով միջամտություն:
- JavaScript-ում գրված պահված ընթացակարգերը ապահովում են VECTOR տեսակի աջակցություն: Նշված տիպի տվյալներն այժմ կարող են փոխանցվել մուտքային և վերադարձի պարամետրերում:
- Ավելացրել է նույնականացման հնարավորությունը, երբ միանում եք DBMS-ին՝ օգտագործելով OpenID Connect արձանագրությունը:
- Քսանյոթ խոցելիություն շտկվել է, որոնցից ամենալուրջին (CVE-2024-5535) շնորհվել է կրիտիկական լրջության մակարդակ (9.1-ը 10-ից): Խոցելիությունը կարող է հեռակա կերպով շահագործվել առանց նույնականացման: Խնդիրը առաջանում է OpenSSL գրադարանում սահմաններից դուրս ընթերցման պատճառով և հանգեցնում է խափանման կամ հիշողության արտահոսքի պատասխանում՝ միանալուց հետո: սերվեր սխալ արձանագրության պարամետրերի ցուցումով։
Source: opennet.ru
