Մեկ տարվա մշակումից և չորս նախնական թողարկումից հետո պատրաստված DBMS նոր մասնաճյուղի առաջին կայուն թողարկումը MariaDB 10.4, որի շրջանակներում մշակվում է MySQL-ի մասնաճյուղը, որը պահպանում է հետընթաց համատեղելիությունը և տարբեր լրացուցիչ պահեստային շարժիչների և առաջադեմ հնարավորությունների ինտեգրում: Նոր մասնաճյուղին աջակցություն կտրամադրվի 5 տարի ժամկետով՝ մինչև 2025 թվականի հունիսը։
MariaDB-ի զարգացումը վերահսկվում է անկախ MariaDB հիմնադրամի կողմից՝ հետևելով բաց և թափանցիկ զարգացման գործընթացին, որը անկախ է առանձին վաճառողներից: MariaDB-ն մատակարարվում է MySQL-ի փոխարեն շատ Linux բաշխումներում (RHEL, SUSE, Fedora, openSUSE, Slackware, OpenMandriva, ROSA, Arch Linux, Debian) և իրականացվել է այնպիսի խոշոր նախագծերում, ինչպիսիք են. Վիքիփեդիա, ազատ հանրագիտարան, Google Cloud SQL и Nimbuzz.
Ավելացվեց պահեստային շարժիչ S3, որը թույլ է տալիս հյուրընկալել MariaDB աղյուսակները Amazon S3-ում կամ ցանկացած այլ հանրային կամ մասնավոր ամպային պահեստում, որն աջակցում է S3 API-ին: S3-ում ինչպես սովորական, այնպես էլ բաժանված աղյուսակների տեղադրումն աջակցվում է: Երբ բաժանված աղյուսակները տեղադրվում են ամպի մեջ, դրանք կարող են ուղղակիորեն օգտագործվել, ներառյալ մեկ այլ սերվերից, որը հասանելի է S3 պահեստին:
Ավելացվեց պահեստային շարժիչ ColumnStore, որը պահում է սյունակներով կապված տվյալները և օգտագործում զանգվածաբար զուգահեռ բաշխված ճարտարապետություն. Շարժիչը հիմնված է MySQL պահեստավորման զարգացումների վրա InfiniDB և նախատեսված է մեծ քանակությամբ տվյալների վրա վերլուծական հարցումների մշակումն ու կատարումը կազմակերպելու համար (Data Warehouse):
ColumnStore-ը պահում է տվյալները ոչ թե տող առ տող, այլ ըստ սյունակների, ինչը թույլ է տալիս օպտիմիզացնել խմբավորման կատարումն ըստ սյունակների մեծ տվյալների բազայից, ներառյալ petabytes տվյալները: Աջակցվում է գծային մասշտաբը, սեղմված տվյալների պահպանումը, ուղղահայաց և հորիզոնական բաժանումը և մրցակցող հարցումների արդյունավետ կատարումը:
Բոլոր գործարկվողները, որոնք սկսվում են «mysql» բառով, վերանվանվել են՝ օգտագործելու «mariadb» բառը: Հին անունները պահվում են խորհրդանշական հղումների տեսքով։
Ավելացվեց տվյալների նոր տեսակ INET6 IPv6 հասցեները պահելու համար:
Աշխատանք է տարվել արտոնությունները ավելի փոքր բաղադրիչների բաժանելու ուղղությամբ: Ընդհանուր ՍՈՒՊԵՐ արտոնության փոխարեն առաջարկվում է «BINLOG ADMIN» ընտրովի արտոնությունների մի շարք,
«BINLOG REPLAY»
«ՄԻԱՑՄԱՆ ԱԴՄԻՆ»
«ԴԱՇՆԱՑՎԱԾ ԱԴՄԻՆ»
«READ_ONLY ADMIN»,
«ՌԵՊԼԻԿԱՑԻՈՆ ՄԱՍՏԵՐ ԱԴՄԻՆ»
«REPLICATION SLAVE ADMIN» և
«ՍԱՀՄԱՆԵԼ ՕԳՏԱԳՈՐԾՈՂ»:
«REPLICATION CLIENT» արտոնությունը վերանվանվել է «BINLOG MONITOR», իսկ «SHOW MASTER STATUS» արտահայտությունը՝ «SHOW BINLOG STATUS»: Վերանվանումը հստակեցնում է վարքագիծը և կապված չէ քաղաքական կոռեկտության հետ, նախագիծը չի հրաժարվում վարպետ/ստրուկ տերմիններից և նույնիսկ ավելացրել է նոր արտոնություններ՝ «MASTER ADMIN» և «SLAVE ADMIN»: Միևնույն ժամանակ SQL արտահայտության մեջ ավելացվել է նոր բանալի «REPLICA», որը «SLAVE»-ի հոմանիշն է։
Որոշ արտահայտությունների համար փոխվել են դրանք կատարելու համար պահանջվող արտոնությունները։ «SHOW BINLOG EVENTS»-ն այժմ պահանջում է «BINLOG MONITOR» արտոնություններ «REPLICATION SLAVE»-ի փոխարեն, «SHOW SLAVE HOSTS»-ը պահանջում է «REPLICATION MASTER ADMIN» արտոնություններ «REPLICATION SLAVE»-ի փոխարեն, «SHOW SLAVE STATUS»-ը պահանջում է «REPLICATION SLAVE»-ի փոխարեն: « SUPER»՝ «REPLICATION CLIENT»-ի փոխարեն, «SHOW RELAYLOG EVENTS»-ը պահանջում է «REPLICATION SLAVE ADMIN» իրավունքներ «REPLICATION SLAVE»-ի փոխարեն:
Ավելացված նմուշներ»ՆԵՐԴՐԵԼ...ՎԵՐԱԴԱՐՁՆԵԼՈՒ"Եւ"ՓՈԽԱՐԻՆԵԼ...ՎԵՐԱԴԱՐՁ«, վերադարձնելով զետեղված/փոխարինված գրառումների ցանկը այն ձևով, կարծես արժեքները վերադարձվել են SELECT արտահայտության միջոցով (նման է «ՋՆՋԵԼ ... ՎԵՐԱԴԱՐՁՈՒՄ»):
«ALTER TABLE» և «RENAME TABLE» գործողություններում ավելացվել է «ԵԹԵ ԳՈՅԻ» պայմանի աջակցությունը, որպեսզի կատարվի գործողությունը միայն աղյուսակի առկայության դեպքում.
«ՍՏԵՂԾԵԼ ԱՂՅՈՒՍԱԿ»-ի ինդեքսների համար հատկանիշը «VISIBLE»:
Ավելացվեց «CYCLE» արտահայտությունը` ռեկուրսիվ օղակները բացահայտելու համար CTE- ն.
Ավելացված է առանձնահատկություններ JSON_ARRAYAGG и JSON_OBJECTAGG վերադարձնել զանգված կամ JSON օբյեկտ՝ նշված սյունակի արժեքներով:
Ավելացվել են ծառայության տեղեկատվական աղյուսակներ (THREAD_POOL_GROUPS, THREAD_POOL_QUEUES, THREAD_POOL_STATS և THREAD_POOL_WAITS) շղթաների ֆոնդի համար (thread_pool):
ANALYZE արտահայտությունը ընդլայնվում է՝ ցույց տալու WHERE բլոկի ստուգման և օժանդակ գործողություններ կատարելու ժամանակ ծախսված ժամանակը:
Շրջանակի մշակման օպտիմիզատորը հաշվի է առնում «ԶՈՒՐ ՉԻ» բնութագրերը
VARCHAR, CHAR և BLOB տեսակներով տեսակավորելու ժամանակ օգտագործվող ժամանակավոր ֆայլերի չափը զգալիորեն կրճատվել է:
В երկուական գրանցամատյան, օգտագործվում է կրկնօրինակումը կազմակերպելու համար, ավելացվել են նոր մետատվյալների դաշտեր, այդ թվում՝ առաջնային բանալին, սյունակի անվանումը, նիշերի հավաքածուն և երկրաչափության տեսակը: mariadb-binlog կոմունալ ծրագիրը և «SHOW BINLOG EVENTS» և «SHOW RELAYLOG EVENTS» հրամանները ապահովում են կրկնօրինակման դրոշների ցուցադրում:
Շինարարություն ԸՆԹԱՑԵԼ ՍԵՂԱՆ հիմա ապահով է հեռացնում է աղյուսակներ, որոնք մնում են պահեստավորման շարժիչում, նույնիսկ եթե չկան «.frm» կամ «.par» ֆայլեր:
Իրականացրել է crc32() ֆունկցիայի ապարատային արագացված տարբերակը AMD64, ARMv8 և POWER 8 պրոցեսորների համար:
Փոխեց որոշ կանխադրված կարգավորումներ: innodb_encryption_threads-ը հասցվել է 255-ի, իսկ max_sort_length-ը 4-ից դարձել է 8:
Ներկայացված են InnoDB շարժիչի աշխատանքի բազմաթիվ օպտիմիզացումներ:
Ամբողջական աջակցությունն ավելացվել է Galera-ի համաժամանակյա բազմաբնույթ վերարտադրության մեխանիզմին GTID (Global Transaction ID), գործարքների նույնացուցիչներ, որոնք ընդհանուր են բոլոր կլաստերային հանգույցների համար:
Անցում է կատարվել գրադարանի նոր մասնաճյուղին PCRE2 (Perl Compatible Regular Expressions), դասական PCRE 8.x շարքի փոխարեն:
Զուգասարքերի նոր տարբերակներ են առաջարկվել MariaDB-ին և MySQL DBMS-ին միանալու համար Python-ի և C-ի ծրագրերից: MariaDB միակցիչ / Python 1.0.0 и MariaDB միակցիչ/C 3.1.9. Python-ի կապը համապատասխանում է Python DB API 2.0-ին, գրված է C-ով և օգտագործում է Connector/C գրադարանը՝ սերվերին միանալու համար: