{"id":893,"date":"2021-01-12T16:10:15","date_gmt":"2021-01-12T15:10:15","guid":{"rendered":"https:\/\/explainit.pl\/wordpress\/?p=893"},"modified":"2021-01-12T16:10:16","modified_gmt":"2021-01-12T15:10:16","slug":"sortowanie-przyrostowe-w-postgresql-13","status":"publish","type":"post","link":"https:\/\/explainit.pl\/wordpress\/2021\/01\/12\/sortowanie-przyrostowe-w-postgresql-13\/","title":{"rendered":"Sortowanie przyrostowe w PostgreSQL 13"},"content":{"rendered":"\n<p>Jedn\u0105 z nowych technik optymalizacji wydajno\u015bci, jakie pojawi\u0142y si\u0119 w PostgreSQL 13 jest sortowanie przyrostowe (incremental sorting). Znajduje ono zastosowanie w zapytaniach, kt\u00f3re sortuj\u0105 rekordy wed\u0142ug klucza wielokolumnowego. W przesz\u0142o\u015bci, popularnym sposobem na optymalizacj\u0119 takich sortowa\u0144 by\u0142o utworzenie indeksu na wszystkich kolumnach klucza sortowania. Obecnie, serwer PostgreSQL potrafi w takiej sytuacji skorzysta\u0107 r\u00f3wnie\u017c z indeksu obejmuj\u0105cego tylko cz\u0119\u015b\u0107 (pocz\u0105tkow\u0105) kolumn klucza sortowania, a nast\u0119pnie &#8222;dosortowa\u0107&#8221; rekordy wed\u0142ug ko\u0144cowych kolumn klucza. Dzi\u0119ki temu mechanizmowi, PostgreSQL 13 niew\u0105tpliwie cz\u0119\u015bciej b\u0119dzie wykorzystywa\u0107 indeksy do optymalizacji sortowa\u0144, co prze\u0142o\u017cy si\u0119 na og\u00f3ln\u0105 popraw\u0119 wydajno\u015bci.<\/p>\n\n\n\n<p>Przedstawmy dzia\u0142anie i efekty wydajno\u015bciowe sortowania przyrostowego w PostgreSQL 13. Utworzymy w tym celu trzykolumnow\u0105 tabel\u0119, zawieraj\u0105c\u0105 10 000 rekord\u00f3w, a nast\u0119pnie przeanalizujemy plan wykonania zapytania, kt\u00f3re sortuje rekordy wed\u0142ug dwukolumnowego klucza:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">create table demo as \nselect random()*1000 as x, random()*1000 as y, random()*1000 as z\nfrom generate_series(1,10000);\n\nexplain analyze select z from demo order by x,y limit 1;\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 QUERY PLAN\u00a0\n-----------------------------------------------------------------\nLimit\u00a0 (cost=214.00..214.00 rows=1 width=24) \n\u00a0\u00a0 ->\u00a0 Sort\u00a0 (cost=214.00..239.00 rows=10000 width=24) \n\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Sort Key: x, y\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Sort Method: top-N heapsort\u00a0 Memory: 25kB\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ->\u00a0 Seq Scan on demo\u00a0 (cost=0.00..164.00 rows=10000) \nPlanning Time: 0.131 ms\nExecution Time: 3.031 ms<\/pre>\n\n\n\n<p>Jak wida\u0107, algorytm Quicksort wykona\u0142 w pami\u0119ci operacyjnej pe\u0142ne sortowanie rekord\u00f3w wed\u0142ug x,y.<\/p>\n\n\n\n<p>Utw\u00f3rzmy teraz indeks jedynie na pierwszej kolumnie wykorzystywanej w kluczu sortowania i ponownie przeanalizujmy plan wykonania wcze\u015bniejszego zapytania:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">create index i_x on demo(x);\n\nexplain analyze select z from demo order by x,y limit 1;\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 QUERY PLAN\n-----------------------------------------------------------------\nLimit\u00a0 (cost=0.35..0.45 rows=1 width=24)\n\u00a0\u00a0 ->\u00a0 Incremental Sort\u00a0 (cost=0.35..976.27 rows=10000 width=24)\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Sort Key: x, y\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Presorted Key: x\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Full-sort Groups: 1\u00a0 Sort Method: quicksort\u00a0 Average Memory: 25kB\u00a0 Peak Memory: 25kB\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ->\u00a0 Index Scan using i_x on demo\u00a0 (cost=0.29..526.27 rows=10000 width=24)\nPlanning Time: 0.360 ms\nExecution Time: 0.077 ms<\/pre>\n\n\n\n<p>Zaobserwowali\u015bmy w\u0142a\u015bnie u\u017cycie sortowania przyrostowego przez PostgreSQL (operacja &#8222;Incremental Sort&#8221;). Z opisu planu wykonania wynika, \u017ce w pierwszej kolejno\u015bci, indeks <code>i_x<\/code> pos\u0142u\u017cy\u0142 do wst\u0119pnego posortowania rekord\u00f3w wed\u0142ug kolumny x, a w drugiej kolejno\u015bci, w ramach grup rekord\u00f3w o identycznych warto\u015bciach x, nast\u0105pi\u0142o &#8222;dosortowanie&#8221; wed\u0142ug kolumny y. PostgreSQL 12 w tej sytuacji nie potrafi\u0142 zastosowa\u0107 takiego &#8222;cz\u0105stkowego&#8221; indeksu.<\/p>\n\n\n\n<p>Oczywi\u015bcie, na osi\u0105gni\u0119cie jeszcze lepszego rezultatu pozwoli\u0142by indeks utworzony na obu kolumnach klucza sortowania:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">create index i_xy on demo(x,y);\n\nexplain analyze select z from demo order by x,y limit 1;\n\n    QUERY PLAN\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\n-----------------------------------------------------------------\nLimit\u00a0 (cost=0.29..0.34 rows=1 width=24)\n\u00a0\u00a0 ->\u00a0 Index Scan using i_xy on demo\u00a0 (cost=0.29..570.28 rows=10000 width=24) \nPlanning Time: 0.359 ms\nExecution Time: 0.060 ms<\/pre>\n\n\n\n<p>tyle tylko, \u017ce nie zawsze takim indeksem dysponujemy, a skok wydajno\u015bciowy nie jest ju\u017c tak bardzo zauwa\u017calny.<\/p>\n\n\n\n<p>Przy okazji wprowadzenia nowej metody sortowania pojawi\u0142 si\u0119 te\u017c parametr konfiguracyjny, kt\u00f3ry pozwala j\u0105 aktywowa\u0107\/dezaktywowa\u0107: <code>enable_incremental_sort<\/code>. Dobrej zabawy!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Jedn\u0105 z nowych technik optymalizacji wydajno\u015bci, jakie pojawi\u0142y si\u0119 w PostgreSQL 13 jest sortowanie przyrostowe (incremental sorting). Znajduje ono zastosowanie w zapytaniach, kt\u00f3re sortuj\u0105 rekordy wed\u0142ug klucza wielokolumnowego. W przesz\u0142o\u015bci, popularnym sposobem na optymalizacj\u0119 takich sortowa\u0144 by\u0142o utworzenie indeksu na wszystkich kolumnach klucza sortowania. Obecnie, serwer PostgreSQL potrafi w takiej sytuacji skorzysta\u0107 r\u00f3wnie\u017c z indeksu <a href=\"https:\/\/explainit.pl\/wordpress\/2021\/01\/12\/sortowanie-przyrostowe-w-postgresql-13\/\" rel=\"nofollow\"><span class=\"sr-only\">Read more about Sortowanie przyrostowe w PostgreSQL 13<\/span>[&hellip;]<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[38],"tags":[10,39,21],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.2.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Sortowanie przyrostowe w PostgreSQL 13 - Explain IT<\/title>\n<meta name=\"description\" content=\"Sortowanie przyrostowe w PostgreSQL 13\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/explainit.pl\/wordpress\/2021\/01\/12\/sortowanie-przyrostowe-w-postgresql-13\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Sortowanie przyrostowe w PostgreSQL 13 - Explain IT\" \/>\n<meta property=\"og:description\" content=\"Sortowanie przyrostowe w PostgreSQL 13\" \/>\n<meta property=\"og:url\" content=\"https:\/\/explainit.pl\/wordpress\/2021\/01\/12\/sortowanie-przyrostowe-w-postgresql-13\/\" \/>\n<meta property=\"og:site_name\" content=\"Explain IT\" \/>\n<meta property=\"article:published_time\" content=\"2021-01-12T15:10:15+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-01-12T15:10:16+00:00\" \/>\n<meta name=\"author\" content=\"Maciej Zakrzewicz\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Napisane przez\" \/>\n\t<meta name=\"twitter:data1\" content=\"Maciej Zakrzewicz\" \/>\n\t<meta name=\"twitter:label2\" content=\"Szacowany czas czytania\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minuty\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/explainit.pl\/wordpress\/2021\/01\/12\/sortowanie-przyrostowe-w-postgresql-13\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/explainit.pl\/wordpress\/2021\/01\/12\/sortowanie-przyrostowe-w-postgresql-13\/\"},\"author\":{\"name\":\"Maciej Zakrzewicz\",\"@id\":\"https:\/\/explainit.pl\/wordpress\/#\/schema\/person\/740773131bc169a2dc9c0e5e07476219\"},\"headline\":\"Sortowanie przyrostowe w PostgreSQL 13\",\"datePublished\":\"2021-01-12T15:10:15+00:00\",\"dateModified\":\"2021-01-12T15:10:16+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/explainit.pl\/wordpress\/2021\/01\/12\/sortowanie-przyrostowe-w-postgresql-13\/\"},\"wordCount\":315,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/explainit.pl\/wordpress\/#organization\"},\"keywords\":[\"indeksy\",\"PostgreSQL\",\"wydajno\u015b\u0107\"],\"articleSection\":[\"PostgreSQL\"],\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/explainit.pl\/wordpress\/2021\/01\/12\/sortowanie-przyrostowe-w-postgresql-13\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/explainit.pl\/wordpress\/2021\/01\/12\/sortowanie-przyrostowe-w-postgresql-13\/\",\"url\":\"https:\/\/explainit.pl\/wordpress\/2021\/01\/12\/sortowanie-przyrostowe-w-postgresql-13\/\",\"name\":\"Sortowanie przyrostowe w PostgreSQL 13 - Explain IT\",\"isPartOf\":{\"@id\":\"https:\/\/explainit.pl\/wordpress\/#website\"},\"datePublished\":\"2021-01-12T15:10:15+00:00\",\"dateModified\":\"2021-01-12T15:10:16+00:00\",\"description\":\"Sortowanie przyrostowe w PostgreSQL 13\",\"breadcrumb\":{\"@id\":\"https:\/\/explainit.pl\/wordpress\/2021\/01\/12\/sortowanie-przyrostowe-w-postgresql-13\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/explainit.pl\/wordpress\/2021\/01\/12\/sortowanie-przyrostowe-w-postgresql-13\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/explainit.pl\/wordpress\/2021\/01\/12\/sortowanie-przyrostowe-w-postgresql-13\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\u0142\u00f3wna\",\"item\":\"https:\/\/explainit.pl\/wordpress\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Sortowanie przyrostowe w PostgreSQL 13\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/explainit.pl\/wordpress\/#website\",\"url\":\"https:\/\/explainit.pl\/wordpress\/\",\"name\":\"Explain IT\",\"description\":\"Autorska pracownia doradztwa i szkole\u0144 IT - Maciej Zakrzewicz - szkolenia, ekspertyzy, wdro\u017cenia. Technologie Oracle, PostgreSQL, MySQL.\",\"publisher\":{\"@id\":\"https:\/\/explainit.pl\/wordpress\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/explainit.pl\/wordpress\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"pl-PL\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/explainit.pl\/wordpress\/#organization\",\"name\":\"Explain IT\",\"url\":\"https:\/\/explainit.pl\/wordpress\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/explainit.pl\/wordpress\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/explainit.pl\/wordpress\/wp-content\/uploads\/2016\/08\/explainITmini.png\",\"contentUrl\":\"https:\/\/explainit.pl\/wordpress\/wp-content\/uploads\/2016\/08\/explainITmini.png\",\"width\":196,\"height\":64,\"caption\":\"Explain IT\"},\"image\":{\"@id\":\"https:\/\/explainit.pl\/wordpress\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/explainit.pl\/wordpress\/#\/schema\/person\/740773131bc169a2dc9c0e5e07476219\",\"name\":\"Maciej Zakrzewicz\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/explainit.pl\/wordpress\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/9c98d020128b142a480aa35a22300a69?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/9c98d020128b142a480aa35a22300a69?s=96&d=mm&r=g\",\"caption\":\"Maciej Zakrzewicz\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Sortowanie przyrostowe w PostgreSQL 13 - Explain IT","description":"Sortowanie przyrostowe w PostgreSQL 13","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/explainit.pl\/wordpress\/2021\/01\/12\/sortowanie-przyrostowe-w-postgresql-13\/","og_locale":"pl_PL","og_type":"article","og_title":"Sortowanie przyrostowe w PostgreSQL 13 - Explain IT","og_description":"Sortowanie przyrostowe w PostgreSQL 13","og_url":"https:\/\/explainit.pl\/wordpress\/2021\/01\/12\/sortowanie-przyrostowe-w-postgresql-13\/","og_site_name":"Explain IT","article_published_time":"2021-01-12T15:10:15+00:00","article_modified_time":"2021-01-12T15:10:16+00:00","author":"Maciej Zakrzewicz","twitter_card":"summary_large_image","twitter_misc":{"Napisane przez":"Maciej Zakrzewicz","Szacowany czas czytania":"2 minuty"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/explainit.pl\/wordpress\/2021\/01\/12\/sortowanie-przyrostowe-w-postgresql-13\/#article","isPartOf":{"@id":"https:\/\/explainit.pl\/wordpress\/2021\/01\/12\/sortowanie-przyrostowe-w-postgresql-13\/"},"author":{"name":"Maciej Zakrzewicz","@id":"https:\/\/explainit.pl\/wordpress\/#\/schema\/person\/740773131bc169a2dc9c0e5e07476219"},"headline":"Sortowanie przyrostowe w PostgreSQL 13","datePublished":"2021-01-12T15:10:15+00:00","dateModified":"2021-01-12T15:10:16+00:00","mainEntityOfPage":{"@id":"https:\/\/explainit.pl\/wordpress\/2021\/01\/12\/sortowanie-przyrostowe-w-postgresql-13\/"},"wordCount":315,"commentCount":0,"publisher":{"@id":"https:\/\/explainit.pl\/wordpress\/#organization"},"keywords":["indeksy","PostgreSQL","wydajno\u015b\u0107"],"articleSection":["PostgreSQL"],"inLanguage":"pl-PL","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/explainit.pl\/wordpress\/2021\/01\/12\/sortowanie-przyrostowe-w-postgresql-13\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/explainit.pl\/wordpress\/2021\/01\/12\/sortowanie-przyrostowe-w-postgresql-13\/","url":"https:\/\/explainit.pl\/wordpress\/2021\/01\/12\/sortowanie-przyrostowe-w-postgresql-13\/","name":"Sortowanie przyrostowe w PostgreSQL 13 - Explain IT","isPartOf":{"@id":"https:\/\/explainit.pl\/wordpress\/#website"},"datePublished":"2021-01-12T15:10:15+00:00","dateModified":"2021-01-12T15:10:16+00:00","description":"Sortowanie przyrostowe w PostgreSQL 13","breadcrumb":{"@id":"https:\/\/explainit.pl\/wordpress\/2021\/01\/12\/sortowanie-przyrostowe-w-postgresql-13\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/explainit.pl\/wordpress\/2021\/01\/12\/sortowanie-przyrostowe-w-postgresql-13\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/explainit.pl\/wordpress\/2021\/01\/12\/sortowanie-przyrostowe-w-postgresql-13\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/explainit.pl\/wordpress\/"},{"@type":"ListItem","position":2,"name":"Sortowanie przyrostowe w PostgreSQL 13"}]},{"@type":"WebSite","@id":"https:\/\/explainit.pl\/wordpress\/#website","url":"https:\/\/explainit.pl\/wordpress\/","name":"Explain IT","description":"Autorska pracownia doradztwa i szkole\u0144 IT - Maciej Zakrzewicz - szkolenia, ekspertyzy, wdro\u017cenia. Technologie Oracle, PostgreSQL, MySQL.","publisher":{"@id":"https:\/\/explainit.pl\/wordpress\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/explainit.pl\/wordpress\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"pl-PL"},{"@type":"Organization","@id":"https:\/\/explainit.pl\/wordpress\/#organization","name":"Explain IT","url":"https:\/\/explainit.pl\/wordpress\/","logo":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/explainit.pl\/wordpress\/#\/schema\/logo\/image\/","url":"https:\/\/explainit.pl\/wordpress\/wp-content\/uploads\/2016\/08\/explainITmini.png","contentUrl":"https:\/\/explainit.pl\/wordpress\/wp-content\/uploads\/2016\/08\/explainITmini.png","width":196,"height":64,"caption":"Explain IT"},"image":{"@id":"https:\/\/explainit.pl\/wordpress\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/explainit.pl\/wordpress\/#\/schema\/person\/740773131bc169a2dc9c0e5e07476219","name":"Maciej Zakrzewicz","image":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/explainit.pl\/wordpress\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/9c98d020128b142a480aa35a22300a69?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/9c98d020128b142a480aa35a22300a69?s=96&d=mm&r=g","caption":"Maciej Zakrzewicz"}}]}},"_links":{"self":[{"href":"https:\/\/explainit.pl\/wordpress\/wp-json\/wp\/v2\/posts\/893"}],"collection":[{"href":"https:\/\/explainit.pl\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/explainit.pl\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/explainit.pl\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/explainit.pl\/wordpress\/wp-json\/wp\/v2\/comments?post=893"}],"version-history":[{"count":1,"href":"https:\/\/explainit.pl\/wordpress\/wp-json\/wp\/v2\/posts\/893\/revisions"}],"predecessor-version":[{"id":894,"href":"https:\/\/explainit.pl\/wordpress\/wp-json\/wp\/v2\/posts\/893\/revisions\/894"}],"wp:attachment":[{"href":"https:\/\/explainit.pl\/wordpress\/wp-json\/wp\/v2\/media?parent=893"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/explainit.pl\/wordpress\/wp-json\/wp\/v2\/categories?post=893"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/explainit.pl\/wordpress\/wp-json\/wp\/v2\/tags?post=893"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}