Ба андешаи ман, бар хилофи версияҳои қаблӣ, PostgreSQL 12 як ё ду хусусияти инқилобиро дар бар намегирад (ба монанди тақсимкунӣ ё параллелизми дархост). Боре ман шӯхӣ кардам, ки хусусияти асосии PostgreSQL 12 устувории бештар аст. Вақте ки шумо маълумоти муҳими тиҷорати худро идора мекунед, ин ба шумо лозим нест?
Аммо PostgreSQL 12 бо ин қатъ намешавад: бо хусусиятҳо ва такмилдиҳии нав, барномаҳо беҳтар кор хоҳанд кард, ва танҳо ба шумо лозим аст, ки навсозӣ кунед!
(Хуб, шояд шохисҳоро аз нав созед, аммо дар ин нашр он он қадар даҳшатнок нест, ки мо одат кардаем.)
Навсозии PostgreSQL хеле хуб хоҳад буд ва фавран аз беҳбудиҳои назаррас бидуни сару садоҳои нолозим лаззат баред. Чанд сол пеш ман навсозӣ аз PostgreSQL 9.4 ба PostgreSQL 10-ро дида баромадам ва дидам, ки чӣ тавр барнома ба шарофати параллелизми такмилёфтаи дархост дар PostgreSQL 10 суръат мебахшад. Ва муҳимтар аз ҳама, аз ман қариб ҳеҷ чиз талаб карда намешавад (танҳо як параметри конфигуратсияро таъин кунед. max_parallel_workers
).
розӣ шавед, вақте ки барномаҳо фавран пас аз навсозӣ беҳтар кор мекунанд, қулай аст. Ва мо кӯшиш мекунем, ки ба корбарон писанд ояд, зеро PostgreSQL шумораи онҳо торафт бештар дорад.
Пас, чӣ гуна як навсозии оддӣ ба PostgreSQL 12 метавонад шуморо хушбахт кунад? Ман ҳоло ба шумо мегӯям.
Такмилҳои асосии индексатсия
Бе индексатсия, пойгоҳи додаҳо дур намеравад. Боз чӣ гуна шумо метавонед маълумотро зуд пайдо кунед? Системаи асосии индексатсияи PostgreSQL номида мешавад
Мо танҳо операторро истифода мебарем CREATE INDEX ON some_table (some_column)
, ва PostgreSQL барои навсозӣ кардани индекс корҳои зиёдеро анҷом медиҳад, дар ҳоле ки мо пайваста арзишҳоро ворид, навсозӣ ва нест мекунем. Ҳама чиз худ аз худ кор мекунад, гӯё бо ҷодугарӣ.
Аммо индексҳои PostgreSQL як мушкилот доранд - онҳо
PostgreSQL 12 иҷрои индексҳои дарахти B-ро хеле беҳтар мекунад ва таҷрибаҳо бо нишондодҳо ба монанди TPC-C нишон доданд, ки ҳоло ба ҳисоби миёна 40% фазои камтар истифода мешавад. Ҳоло мо на танҳо барои нигоҳ доштани индексҳои дарахти B (яъне барои амалиёти навиштан), балки барои дарёфти маълумот низ вақти камтар сарф мекунем, зеро индексҳо хеле хурдтаранд.
Барномаҳое, ки ҷадвалҳои худро фаъолона навсозӣ мекунанд - маъмулан барномаҳои OLTP (
Баъзе стратегияҳои навсозӣ аз нав сохтани шохисҳои дарахти B-ро талаб мекунанд, то аз ин бартариятҳо истифода баранд (масалан.
Дар инфрасохтори индексатсия дар PostgreSQL 12 беҳбудиҳои дигар мавҷуданд. Чизи дигаре, ки ҷодуе буд -
PostgreSQL 12 хароҷоти сабтҳои WAL-ро, ки аз ҷониби индексҳои GiST, GIN ва SP-GiST ҳангоми сохтани индекс сохта мешаванд, кам кард. Ин як қатор бартариҳои назаррас медиҳад: сабтҳои WAL фазои камтари дискро ишғол мекунанд ва маълумот тезтар такрор мешавад, масалан ҳангоми барқарорсозии офатҳои табиӣ ё барқароркунии вақт. Агар шумо чунин индексҳоро дар замимаҳои худ истифода баред (масалан, замимаҳои геофазоӣ дар асоси PostGIS индекси GiST-ро зиёд истифода мебаранд), ин хусусияти дигарест, ки бе ягон кӯшиши шумо таҷрибаро ба таври назаррас беҳтар мекунад.
Тақсимкунӣ - калонтар, беҳтар, тезтар
PostgreSQL 10 ҷорӣ карда шуд
Дар PostgreSQL 12, иҷрои системаи тақсимкунӣ ба таври назаррас беҳтар шуд, хусусан агар дар ҷадвал ҳазорҳо қисмҳо мавҷуд бошанд. Масалан, агар дархост танҳо ба чанд қисмҳои ҷадвал бо ҳазорон қисмҳои онҳо таъсир расонад, он хеле тезтар иҷро мешавад. Фаъолият на танҳо барои ин намуди дархостҳо беҳтар карда мешавад. Шумо инчунин хоҳед дид, ки амалиёти INSERT дар ҷадвалҳои дорои қисмҳои сершумор то чӣ андоза тезтар иҷро мешаванд.
Бо истифода аз сабти маълумот
Ба шарофати ин бартариҳо, PostgreSQL ба шумо имкон медиҳад, ки маҷмӯаҳои маълумоти боз ҳам калонтарро нигоҳ доред ва гирифтани онҳоро осонтар кунед. Ва ҳеҷ кӯшише аз ҷониби шумо. Агар барнома қисмҳои зиёд дошта бошад, ба монанди сабти маълумоти силсилаи вақт, навсозии оддӣ кори онро ба таври назаррас беҳтар мекунад.
Гарчанде ки ин маҳз як такмили "навсозӣ ва лаззат бурдан" нест, PostgreSQL 12 ба шумо имкон медиҳад, ки калидҳои хориҷиро эҷод кунед, ки ба ҷадвалҳои тақсимшуда истинод мекунанд ва тақсимкуниро барои кор кардан лаззат мебахшанд.
БО дархостҳо танҳо хеле беҳтар шуданд
Ҳангоми
Ман аксар вақт мефаҳмам, ки навгониҳои SQL истифодаи CTE-ро дӯст медоранд; агар шумо онҳоро бо роҳи муайян нависед, дар ҳақиқат чунин ҳис мекунад, ки шумо як барномаи ҳатмӣ менависед. Шахсан ба ман маъқул буд, ки ин пурсишҳоро дубора нависам, то дар гирду атроф пайдо кунам бе он CTE ва баланд бардоштани ҳосилнокӣ. Акнун ҳама чиз дигар аст.
PostgreSQL 12 ба шумо имкон медиҳад, ки як намуди мушаххаси CTE-ро бидуни таъсири тараф ворид кунед (SELECT
), ки танҳо як маротиба дар охири дархост истифода мешавад. Агар ман дархостҳои CTE-ро, ки аз нав навиштаам, пайгирӣ мекардам, аксарияти онҳо ба ин категория дохил мешаванд. Ин ба таҳиягарон кӯмак мекунад, ки рамзи равшан нависанд, ки ҳоло низ зуд кор мекунад.
Гузашта аз ин, PostgreSQL 12 худи иҷрои SQL-ро оптимизатсия мекунад, бидуни он ки шумо коре кунед. Ва гарчанде ки ҳоло ба ман лозим нест, ки ин гуна дархостҳоро оптимизатсия кунам, хуб аст, ки PostgreSQL корашро дар оптимизатсияи дархостҳо идома медиҳад.
Танҳо дар вақташ (JIT) - ҳоло пешфарз
Дар системаҳои PostgreSQL 12 бо дастгирӣ
Азбаски JIT дар PostgreSQL 12 ба таври нобаёнӣ фаъол аст, иҷроиш худ аз худ беҳтар мешавад, аммо ман тавсия медиҳам, ки барномаро дар PostgreSQL 11, ки JIT-ро ҷорӣ кардааст, санҷед, то иҷрои дархостҳоро чен кунед ва бубинед, ки оё шумо ягон чизро танзим кардан лозим аст.
Дар бораи боқимондаи хусусиятҳои нав дар PostgreSQL 12 чӣ гуфтан мумкин аст?
PostgreSQL 12 дорои як тонна хусусиятҳои нави ҷолиб аст, аз қобилияти тафтиш кардани маълумоти JSON бо истифода аз ифодаҳои масири стандартии SQL/JSON то аутентификатсияи бисёрфакторӣ бо параметр clientcert=verify-full
, сутунхои сохташуда ва гайра. Барои як мақолаи алоҳида кофӣ аст.
Мисли PostgreSQL 10, PostgreSQL 12 дарҳол пас аз навсозӣ кори умумиро беҳтар мекунад. Шумо, албатта, метавонед роҳи шахсии худро дошта бошед - пеш аз он ки ман бо PostgreSQL 10 кардаам, барномаро дар шароити шабеҳ дар системаи истеҳсолӣ санҷед. Ҳатто агар PostgreSQL 12 аллакай назар ба интизории ман устувортар бошад ҳам, дар озмоиш танбал нашавед. пеш аз дар истехсо-лот баровардани онхо бодиккат.
Манбаъ: will.com