Ця стаття потребує додаткових для поліпшення її . (березень 2018) |
Се́кція (англ. partition) — поділ логічної бази даних або її складових елементів на окремі незалежні частини. Розбиття бази даних зазвичай виконується задля покращення керованості, збільшення продуктивності чи доступності, а також балансування навантаження.
Переваги багатьох секцій
- Покращення керованості — менший розмір секції дозволяє проводити незалежне обслуговування від інших секцій. Реорганізація та побудова індексів.
- Балансування навантаження — зменшення розміру секції може зменшити навантаження, викидаючи секції, які не братимуть участь у запиті.
- У деяких системах наявність розбиття може призвести до пришвидшення виконання запиту, тому що СКБД дозволить паралельну обробку даних в всіх секціях.
- Керування даними на базі часової оперативності (Tiering). Деякі СКБД дозволяють управляти розташуванням даних на дискових системах. таким чином оперативні секції можна розмістити на швидких продуктивних носіях, а архівні на менш продуктивних але дешевших. Це протилежний підхід
Критерії розбиття
Сучасні реляційні системи керування базами даних пропонують різні критерії розділення бази даних. Всі вони базуються на тому, що у таблиці є поле яке визначає ключ розбиття (англ. partitioning key), на основі певного критерію від його значення. В результаті такому рядку призначається секцію.
Поширеними критеріями є:
- Діапазонне розбиття (англ. range partitioning) — обирає секцію визначенням, чи ключ розбиття перебуває всередині певного діапазону. Воно розподіляє кортежі на основі інтервалів (діапазонів) значення деякого атрибуту. Популярним прикладом є секціонування по діапазону дат. Наприклад, є таблиця в якій реєструються події, з колонкою "дата", яка містить дату та час події, яка стає ключем розбиття. Ми можемо можете використовувати діапазонне розбиття, щоб розбити дані на секції за місяцями, кварталами або роками. На додачу до підтримки запитів точної відповідності (як у гешуванні), воно добре підходить для запитів діапазонних. Наприклад, запит із умовою знайти дані за минулий місяць, сервер буде шукати дані лише в тих секціях де зберігаються дані за минулий місяць, і не читати в інших. Процес коли СКБД помічає що деякі секції можна не використовувати для виконання такого запиту називається відкидання секцій (elimination partition).
- Спискове розбиття (англ. list partitioning) — секція призначається словником, який описує список значень та секції, які їм відносяться. Якщо ключ розбиття рядка приймає має одне з цих значень — секцію обирається з словника. Наприклад, всі рядки, де колонка
Country
є одним зІсландія
,Норвегія
,Швеція
,Фінляндія
чиДанія
, можуть будувати секцію для нордичних країн, для інших країн - секція з відповідним регіоном. Для значень які не описані, може існувати секція за замовчуванням. - Кругове розбиття (англ. round-robin partitioning) — найпростіша стратегія, що забезпечує рівномірний розподіл даних. Ключем розбиття стає числовий ідентифікатор, секції нумеровані, і номер секції визначається функцією залишок від ділення на номер секції
(i mod n)
. Ця стратегія дозволяє знижувати навантаження при точному пошуку по ключу. Однак пошук по діапазону значень вимагатиму доступу до всіх секцій таблиці. - Геш-розбиття (англ. hash partitioning) — узагальнений випадок round-robin partitioning, застосовує геш-функцію до деякого атрибуту, що дає номер секції. Ця стратегія дозволяє обробляти запити точної відповідності на атрибут вибірки в точності одним вузлом, а всі інші запити обробляти паралельно всіма вузлами.
- Складене розбиття (англ. composite partitioning) — дозволяє певні комбінування вищенаведених схем розбиття, наприклад, спочатку діапазонного, а потім геш-розбиття. Наприклад PostgreSQL пропонує ієрархічне розбиття, коли секція в свою чергу бути розбита на секції.
Способи розбиття
Популярним застосування розбиття (англ. partitioning) є в розподілених системах керування базами даних. Кожна секція може поширюватися на декілька вузлів, і користувачі на вузлі можуть виконувати локальні транзакції на секції. Це підвищує продуктивність для місць, які мають регулярні транзакції з залученням певних розрізів даних, зберігаючи доступність і безпеку.
Терміни секція або партиція, а також процес розбиття (секціонування, партиціонування) частіше використовуються коли фізично всі частини таблиці знаходяться на одному сервері, і переважно стосуються реляційних СКБД. Коли частини даних таблиці знаходяться на окремих серверах розподіленої бази, і дані які в них знаходяться є незалежними від даних в інших секціях, то використовується термін шард (осколок з англ. shard).
Детальніші відомості з цієї теми ви можете знайти в статті [en].
Розбиття може здійснюватися або побудовою окремих малих баз даних (кожна з власними таблицями, індексами та журналами транзакцій), або розділенням вибраних елементів, наприклад, просто однієї таблиці.
Горизонтальне розбиття
Горизонтальне розбиття (англ. horizontal partitioning) залучає вставку різних рядків у різні таблиці. Наприклад, замовники з ZIP-кодами менше за 50000 зберігаються в CustomersEast, тоді як замовники з ZIP-кодами понад 50000 зберігаються в CustomersWest. Тоді двома таблицями розділів є CustomersEast і CustomersWest, тоді як для забезпечення повного перегляду всіх замовників над ними обома може бути створено розріз з об'єднанням.
Вертикальне розбиття
Вертикальне розбиття (англ. vertical partitioning) залучає створення таблиць із меншою кількістю колонок та застосування додаткових таблиць для зберігання решти колонок. Нормалізація також залучає таке розділення колонок між таблицями, але вертикальне розбиття виходить за рамки цього та розбиває навіть вже нормалізовані колонки. Для реалізації вертикального розбиття також можуть використовуватися різні фізичні носії; наприклад, одним зі способів вертикального розбиття є зберігання на інших пристроях нечасто використовуваних або дуже широких колонок. Здійснюваний явно чи неявно, цей тип розбиття називається «розділенням рядків» (англ. row splitting, рядок розділено його колонками). Поширеною формою вертикального розбиття є відділення динамічних даних (повільних для пошуку) від статичних даних (швидких для пошуку) до таблиці, де динамічні дані не використовуються так часто, як статичні. Створення розрізу над двома новоствореними таблицями відтворює початкову таблицю зі втратою продуктивності, проте, продуктивність зростатиме при доступі до статичних даних, наприклад, для статистичного аналізу.
Див. також
- Індекс блокового діапазону
- [en] у RAID'ах
Примітки
- Vertical Partitioning Algorithms for Database Design. — Стенфордський університет, 1984. — DOI: . з джерела 20 жовтня 2012. Процитовано 26 березня 2018.
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Cya stattya potrebuye dodatkovih posilan na dzherela dlya polipshennya yiyi perevirnosti Bud laska dopomozhit udoskonaliti cyu stattyu dodavshi posilannya na nadijni avtoritetni dzherela Zvernitsya na storinku obgovorennya za poyasnennyami ta dopomozhit vipraviti nedoliki Material bez dzherel mozhe buti piddano sumnivu ta vilucheno berezen 2018 Se kciya angl partition podil logichnoyi bazi danih abo yiyi skladovih elementiv na okremi nezalezhni chastini Rozbittya bazi danih zazvichaj vikonuyetsya zadlya pokrashennya kerovanosti zbilshennya produktivnosti chi dostupnosti a takozh balansuvannya navantazhennya Perevagi bagatoh sekcijPokrashennya kerovanosti menshij rozmir sekciyi dozvolyaye provoditi nezalezhne obslugovuvannya vid inshih sekcij Reorganizaciya ta pobudova indeksiv Balansuvannya navantazhennya zmenshennya rozmiru sekciyi mozhe zmenshiti navantazhennya vikidayuchi sekciyi yaki ne bratimut uchast u zapiti U deyakih sistemah nayavnist rozbittya mozhe prizvesti do prishvidshennya vikonannya zapitu tomu sho SKBD dozvolit paralelnu obrobku danih v vsih sekciyah Keruvannya danimi na bazi chasovoyi operativnosti Tiering Deyaki SKBD dozvolyayut upravlyati roztashuvannyam danih na diskovih sistemah takim chinom operativni sekciyi mozhna rozmistiti na shvidkih produktivnih nosiyah a arhivni na mensh produktivnih ale deshevshih Ce protilezhnij pidhidKriteriyi rozbittyaSuchasni relyacijni sistemi keruvannya bazami danih proponuyut rizni kriteriyi rozdilennya bazi danih Vsi voni bazuyutsya na tomu sho u tablici ye pole yake viznachaye klyuch rozbittya angl partitioning key na osnovi pevnogo kriteriyu vid jogo znachennya V rezultati takomu ryadku priznachayetsya sekciyu Poshirenimi kriteriyami ye Diapazonne rozbittya angl range partitioning obiraye sekciyu viznachennyam chi klyuch rozbittya perebuvaye vseredini pevnogo diapazonu Vono rozpodilyaye kortezhi na osnovi intervaliv diapazoniv znachennya deyakogo atributu Populyarnim prikladom ye sekcionuvannya po diapazonu dat Napriklad ye tablicya v yakij reyestruyutsya podiyi z kolonkoyu data yaka mistit datu ta chas podiyi yaka staye klyuchem rozbittya Mi mozhemo mozhete vikoristovuvati diapazonne rozbittya shob rozbiti dani na sekciyi za misyacyami kvartalami abo rokami Na dodachu do pidtrimki zapitiv tochnoyi vidpovidnosti yak u geshuvanni vono dobre pidhodit dlya zapitiv diapazonnih Napriklad zapit iz umovoyu znajti dani za minulij misyac server bude shukati dani lishe v tih sekciyah de zberigayutsya dani za minulij misyac i ne chitati v inshih Proces koli SKBD pomichaye sho deyaki sekciyi mozhna ne vikoristovuvati dlya vikonannya takogo zapitu nazivayetsya vidkidannya sekcij elimination partition Spiskove rozbittya angl list partitioning sekciya priznachayetsya slovnikom yakij opisuye spisok znachen ta sekciyi yaki yim vidnosyatsya Yaksho klyuch rozbittya ryadka prijmaye maye odne z cih znachen sekciyu obirayetsya z slovnika Napriklad vsi ryadki de kolonka Country ye odnim z Islandiya Norvegiya Shveciya Finlyandiya chi Daniya mozhut buduvati sekciyu dlya nordichnih krayin dlya inshih krayin sekciya z vidpovidnim regionom Dlya znachen yaki ne opisani mozhe isnuvati sekciya za zamovchuvannyam Krugove rozbittya angl round robin partitioning najprostisha strategiya sho zabezpechuye rivnomirnij rozpodil danih Klyuchem rozbittya staye chislovij identifikator sekciyi numerovani i nomer sekciyi viznachayetsya funkciyeyu zalishok vid dilennya na nomer sekciyi i mod n Cya strategiya dozvolyaye znizhuvati navantazhennya pri tochnomu poshuku po klyuchu Odnak poshuk po diapazonu znachen vimagatimu dostupu do vsih sekcij tablici Gesh rozbittya angl hash partitioning uzagalnenij vipadok round robin partitioning zastosovuye gesh funkciyu do deyakogo atributu sho daye nomer sekciyi Cya strategiya dozvolyaye obroblyati zapiti tochnoyi vidpovidnosti na atribut vibirki v tochnosti odnim vuzlom a vsi inshi zapiti obroblyati paralelno vsima vuzlami Skladene rozbittya angl composite partitioning dozvolyaye pevni kombinuvannya vishenavedenih shem rozbittya napriklad spochatku diapazonnogo a potim gesh rozbittya Napriklad PostgreSQL proponuye iyerarhichne rozbittya koli sekciya v svoyu chergu buti rozbita na sekciyi Sposobi rozbittyaPopulyarnim zastosuvannya rozbittya angl partitioning ye v rozpodilenih sistemah keruvannya bazami danih Kozhna sekciya mozhe poshiryuvatisya na dekilka vuzliv i koristuvachi na vuzli mozhut vikonuvati lokalni tranzakciyi na sekciyi Ce pidvishuye produktivnist dlya misc yaki mayut regulyarni tranzakciyi z zaluchennyam pevnih rozriziv danih zberigayuchi dostupnist i bezpeku Termini sekciya abo particiya a takozh proces rozbittya sekcionuvannya particionuvannya chastishe vikoristovuyutsya koli fizichno vsi chastini tablici znahodyatsya na odnomu serveri i perevazhno stosuyutsya relyacijnih SKBD Koli chastini danih tablici znahodyatsya na okremih serverah rozpodilenoyi bazi i dani yaki v nih znahodyatsya ye nezalezhnimi vid danih v inshih sekciyah to vikoristovuyetsya termin shard oskolok z angl shard Detalnishi vidomosti z ciyeyi temi vi mozhete znajti v statti en Rozbittya mozhe zdijsnyuvatisya abo pobudovoyu okremih malih baz danih kozhna z vlasnimi tablicyami indeksami ta zhurnalami tranzakcij abo rozdilennyam vibranih elementiv napriklad prosto odniyeyi tablici Gorizontalne rozbittya Gorizontalne rozbittya angl horizontal partitioning zaluchaye vstavku riznih ryadkiv u rizni tablici Napriklad zamovniki z ZIP kodami menshe za 50000 zberigayutsya v CustomersEast todi yak zamovniki z ZIP kodami ponad 50000 zberigayutsya v CustomersWest Todi dvoma tablicyami rozdiliv ye CustomersEast i CustomersWest todi yak dlya zabezpechennya povnogo pereglyadu vsih zamovnikiv nad nimi oboma mozhe buti stvoreno rozriz z ob yednannyam Vertikalne rozbittya Vertikalne rozbittya angl vertical partitioning zaluchaye stvorennya tablic iz menshoyu kilkistyu kolonok ta zastosuvannya dodatkovih tablic dlya zberigannya reshti kolonok Normalizaciya takozh zaluchaye take rozdilennya kolonok mizh tablicyami ale vertikalne rozbittya vihodit za ramki cogo ta rozbivaye navit vzhe normalizovani kolonki Dlya realizaciyi vertikalnogo rozbittya takozh mozhut vikoristovuvatisya rizni fizichni nosiyi napriklad odnim zi sposobiv vertikalnogo rozbittya ye zberigannya na inshih pristroyah nechasto vikoristovuvanih abo duzhe shirokih kolonok Zdijsnyuvanij yavno chi neyavno cej tip rozbittya nazivayetsya rozdilennyam ryadkiv angl row splitting ryadok rozdileno jogo kolonkami Poshirenoyu formoyu vertikalnogo rozbittya ye viddilennya dinamichnih danih povilnih dlya poshuku vid statichnih danih shvidkih dlya poshuku do tablici de dinamichni dani ne vikoristovuyutsya tak chasto yak statichni Stvorennya rozrizu nad dvoma novostvorenimi tablicyami vidtvoryuye pochatkovu tablicyu zi vtratoyu produktivnosti prote produktivnist zrostatime pri dostupi do statichnih danih napriklad dlya statistichnogo analizu Div takozhIndeks blokovogo diapazonu en u RAID ahPrimitkiVertical Partitioning Algorithms for Database Design Stenfordskij universitet 1984 DOI 10 1 1 97 8306 z dzherela 20 zhovtnya 2012 Procitovano 26 bereznya 2018