{"id":340088,"date":"2022-10-22T03:00:05","date_gmt":"2022-10-22T03:00:05","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=340088"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=340088","title":{"rendered":"<span>Postgresso 45-46<\/span>"},"content":{"rendered":"<div><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/g7\/6p\/py\/g76ppybr_zhao9-adgb6fjm_tsu.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/g7\/6p\/py\/g76ppybr_zhao9-adgb6fjm_tsu.jpeg\" data-blurred=\"true\"\/><br \/>  <i>\u041f\u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043f\u0440\u0438\u0447\u0438\u043d\u0430\u043c \u044d\u0442\u043e\u0442 \u043d\u043e\u043c\u0435\u0440 \u0441\u0434\u0432\u043e\u0435\u043d\u043d\u044b\u0439, \u0434\u0430\u043b\u044c\u0448\u0435 Postgresso \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442 \u0432\u044b\u0445\u043e\u0434\u0438\u0442\u044c \u0432 \u043e\u0431\u044b\u0447\u043d\u043e\u043c, \u0435\u0436\u0435\u043c\u0435\u0441\u044f\u0447\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435.<\/i>  <\/p>\n<hr\/>\n<h3>\u0420\u0435\u043b\u0438\u0437\u044b Postgres<\/h3>\n<p>  <\/p>\n<h4>PostgreSQL 15 \u2014 Beta 3-4, RC 1-2 \u0438, \u0442\u0435\u043f\u0435\u0440\u044c GA<\/h4>\n<p>  \u0421\u0432\u0435\u0440\u0448\u0438\u043b\u043e\u0441\u044c! \u0413\u043b\u0430\u0432\u043d\u043e\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u2014 \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u044d\u0442\u043e \u0432\u044b\u0445\u043e\u0434 \u0443\u0436\u0435 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439, \u043e\u0431\u0449\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0439 (general availability) 15-\u0439 \u0432\u0435\u0440\u0441\u0438\u0438:<\/p>\n<p>  <b><a href=\"https:\/\/www.postgresql.org\/about\/news\/postgresql-15-released-2526\/\">PostgreSQL 15 Released!<\/a><\/b><\/p>\n<p>  \u0421\u0440\u0435\u0434\u0438 \u0433\u043b\u0430\u0432\u043d\u044b\u0445 \u043d\u043e\u0432\u0448\u0435\u0441\u0442\u0432 \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442:<\/p>\n<ul>\n<li>\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 SQL-\u043a\u043e\u043c\u0430\u043d\u0434\u044b <a href=\"https:\/\/www.postgresql.org\/docs\/15\/sql-merge.html\">MERGE<\/a>;<\/li>\n<li>\u0438\u0437\u0431\u0438\u0440\u0430\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044f \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u044f \u0442\u0430\u0431\u043b\u0438\u0446 \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u044f \u0432 \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0445;<\/li>\n<li>\u0431\u043e\u043b\u044c\u0448\u0435 \u043e\u043f\u0446\u0438\u0439 \u043f\u0440\u0438 \u0441\u0436\u0430\u0442\u0438\u0438, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0441\u0436\u0430\u0442\u0438\u0435 Zstandard (<a href=\"https:\/\/www.postgresql.org\/docs\/15\/runtime-config-wal.html#GUC-WAL-COMPRESSION\">zstd<\/a>); \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0441\u0436\u0430\u0442\u0438\u044f \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 <a href=\"https:\/\/www.postgresql.org\/docs\/15\/runtime-config-wal.html#GUC-WAL-COMPRESSION\">pg_basebackup<\/a>;<\/li>\n<li>\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0432\u044b\u0432\u043e\u0434\u0430 \u043b\u043e\u0433\u043e\u0432 \u0432 JSON-\u0444\u043e\u0440\u043c\u0430\u0442\u0435;<\/li>\n<li>\u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043f\u0440\u0438 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0435 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438 \u0438 \u043d\u0430 \u0434\u0438\u0441\u043a\u0435<\/li>\n<\/ul>\n<p>\u041e\u0431 \u044d\u0442\u043e\u043c \u043c\u043d\u043e\u0433\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e, \u0441\u0435\u0439\u0447\u0430\u0441 \u043c\u044b \u043d\u0430 \u044d\u0442\u043e\u043c \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0435 \u0431\u0443\u0434\u0435\u043c (\u043d\u043e \u043c\u043e\u0436\u043d\u043e \u0433\u043b\u044f\u043d\u0443\u0442\u044c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u0440\u0430\u0442\u043a\u0438\u0439 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439 <b><a href=\"https:\/\/www.percona.com\/blog\/postgresql-15-new-features-to-be-excited-about\/\">PostgreSQL 15 \u2013 New Features to Be Excited About<\/a><\/b> \u043e\u0442 <i>\u0423\u043c\u0430\u0440\u0430 \u0428\u0430\u0445\u0438\u0434\u0430<\/i>, Umair Shahid, Percona) \u0438 \u043f\u0430\u0440\u0443 \u0441\u0441\u044b\u043b\u043e\u043a \u043d\u0438\u0436\u0435 \u043f\u043e \u043f\u043e\u0432\u043e\u0434\u0443 \u0441\u0445\u0435\u043c\u044b public.<\/p>\n<p>  \u041c\u043e\u0436\u043d\u043e, \u043e\u0434\u043d\u0430\u043a\u043e, \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u043e \u043d\u0435 \u0441\u0435\u0439\u0447\u0430\u0441, \u0430 \u0435\u0449\u0451 \u0432 \u0444\u0430\u0437\u0435 <b><a href=\"https:\/\/www.postgresql.org\/about\/news\/postgresql-15-beta-4-released-2507\/\">PostgreSQL 15 Beta 4<\/a><\/b>. \u0422\u043e\u0433\u0434\u0430 \u043e\u0442\u043a\u0430\u0442\u0438\u043b\u0438 \u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0441\u0435\u0440\u0438\u044e \u043f\u0430\u0442\u0447\u0435\u0439, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 SQL\/JSON.<\/p>\n<p>  <a name=\"habracut\"><\/a><br \/>  <b><a href=\"https:\/\/postgrespro.ru\/list\/thread-id\/2614934?ysclid=l7wfbtt4i5786115363\">\u041f\u0430\u0442\u0447\u0438 \u043e\u0442\u043b\u043e\u0436\u0438\u043b\u0438 \u043d\u0430 PostgreSQL 16<\/a><\/b> (\u043c\u043e\u0436\u043d\u043e \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c <a href=\"https:\/\/git.postgresql.org\/gitweb\/?p=postgresql.git;a=commitdiff;h=2f2b18bd3f554e96a8cc885b177211be12288e4a\">\u0432\u0441\u044e \u0432\u0435\u0442\u043a\u0443<\/a>, \u0434\u0438\u0441\u043a\u0443\u0441\u0441\u0438\u044f <a href=\"https:\/\/www.postgresql.org\/message-id\/flat\/abd9b83b-aa66-f230-3d6d-734817f0995d%40postgresql.org\">\u0437\u0434\u0435\u0441\u044c<\/a>. \u0427\u0442\u043e\u0431\u044b \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u043e\u0442\u043a\u0430\u0442\u0438\u0442\u044c SQL\/JSON, \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c 60 (!) \u0444\u0430\u0439\u043b\u043e\u0432. \u0421\u0440\u0435\u0434\u0438 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043e\u0442\u043a\u0430\u0442\u0438\u043b\u0438:   <\/p>\n<ul>\n<li><a href=\"https:\/\/git.postgresql.org\/gitweb\/?p=postgresql.git;a=commit;h=f4fb45d15\">SQL\/JSON constructors<\/a>;<\/li>\n<li><a href=\"https:\/\/git.postgresql.org\/gitweb\/?p=postgresql.git;a=commit;h=33a377608\">IS JSON predicate<\/a>;<\/li>\n<li><a href=\"https:\/\/git.postgresql.org\/gitweb\/?p=postgresql.git;a=commit;h=1a36bc9db\">SQL\/JSON query functions<\/a>;<\/li>\n<li><a href=\"https:\/\/git.postgresql.org\/gitweb\/?p=postgresql.git;a=commit;h=606948b05\">SQL JSON functions<\/a>;<\/li>\n<li><a href=\"https:\/\/git.postgresql.org\/gitweb\/?p=postgresql.git;a=commit;h=4e34747c8\">JSON_TABLE<\/a>.<\/li>\n<\/ul>\n<p>  <i>\u0414\u0435\u043f\u0435\u0448<\/i> (Hubert depesz Lubaczewski) <a href=\"https:\/\/www.depesz.com\/2022\/09\/02\/sql-json-is-postponed\/\">\u043f\u0438\u0448\u0435\u0442<\/a>: <i>\u044f \u0441\u0430\u043c \u0432 \u043c\u0430\u0440\u0442\u0435 \u0438 \u0430\u043f\u0440\u0435\u043b\u0435 \u043f\u0438\u0441\u0430\u043b \u043e \u0433\u0440\u044f\u0434\u0443\u0449\u0438\u0445 \u0432\u0435\u043b\u0438\u043a\u0438\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044f\u0445 (great feature) \u043f\u043e\u043b\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 SQL\/JSON. \u0423\u0432\u044b, \u0432\u0441\u0451 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043e\u0442\u043a\u0430\u0442\u0438\u0442\u044c (\u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0438\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432) \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0437 PostgreSQL 16, \u043d\u043e \u0438 \u0438\u0437 \u00ab\u043f\u043e\u0447\u0442\u0438 \u0433\u043e\u0442\u043e\u0432\u043e\u0439\u00bb PostgreSQL 15.<\/i><\/p>\n<p>  \u041d\u0430\u0448 \u043a\u043e\u043b\u043b\u0435\u0433\u0430 <i>\u0415\u0433\u043e\u0440 \u0420\u043e\u0433\u043e\u0432<\/i> (\u0430\u0432\u0442\u043e\u0440 <a href=\"https:\/\/postgrespro.ru\/education\/books\/internals\">PostgreSQL \u0438\u0437\u043d\u0443\u0442\u0440\u0438<\/a>) \u043d\u0435 \u0443\u043d\u044b\u0432\u0430\u0435\u0442:<br \/>  <i>\u041c\u043d\u0435 \u0432 \u044d\u0442\u043e\u0439 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f, \u0447\u0442\u043e, \u0432\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u043c\u043d\u043e\u0433\u043e \u043b\u044e\u0434\u0435\u0439 \u0434\u043e \u0441\u0430\u043c\u043e\u0433\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u043f\u043e\u043c\u043e\u0433\u0430\u043b\u0438 <\/i>\u041d\u0438\u043a\u0438\u0442\u0435 [\u0413\u043b\u0443\u0445\u043e\u0432\u0443]<i> \u0441 \u043f\u0430\u0442\u0447\u0430\u043c\u0438, \u0432\u043e-\u0432\u0442\u043e\u0440\u044b\u0445, \u0447\u0442\u043e \u043e\u043d \u0441\u0430\u043c \u043d\u0435 \u0431\u0440\u043e\u0441\u0430\u043b \u0437\u0430\u0434\u0430\u0447\u0443, \u0438, \u0432-\u0442\u0440\u0435\u0442\u044c\u0438\u0445, \u0447\u0442\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e \u043d\u0435 \u043f\u043e\u0448\u043b\u043e \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e\u0431\u044b \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043d\u0435\u0434\u043e\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0439 \u0434\u043e \u0443\u043c\u0430 \u043a\u043e\u0434 \u0438\u043b\u0438 \u043d\u0430\u0440\u0443\u0448\u0438\u0442\u044c \u0440\u0435\u043b\u0438\u0437\u043d\u044b\u0439 \u0446\u0438\u043a\u043b. \u041d\u0430\u0434\u0435\u044e\u0441\u044c, \u0447\u0442\u043e \u0441\u0447\u0430\u0441\u0442\u043b\u0438\u0432\u044b\u0439 \u043a\u043e\u043d\u0435\u0446 \u0432\u0441\u0435-\u0442\u0430\u043a\u0438 \u0441\u043b\u0443\u0447\u0438\u0442\u0441\u044f, \u043d\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u0443\u0436\u0435 \u0447\u0435\u0440\u0435\u0437 \u0433\u043e\u0434.<\/i><\/p>\n<p>  \u0427\u0442\u043e\u0431\u044b \u0443\u0437\u043d\u0430\u0442\u044c \u043e \u043d\u043e\u0432\u043e\u043c \u0432 15-\u0439 \u0432\u0435\u0440\u0441\u0438\u0438, \u0438\u043c\u0435\u0435\u0442 \u0441\u043c\u044b\u0441\u043b \u043f\u043e\u0441\u043b\u0443\u0448\u0430\u0442\u044c\/\u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c <a href=\"https:\/\/www.youtube.com\/watch?v=9RDS-DQDY0A\">\u0434\u043e\u043a\u043b\u0430\u0434 \u043d\u0430 PGConf.Russia 2022<\/a> \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f \u043e\u0442\u0434\u0435\u043b\u0430 \u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c Postgres Professional <i>\u041f\u0430\u0432\u043b\u0430 \u041b\u0443\u0437\u0430\u043d\u043e\u0432\u0430<\/i>. \u0422\u0430\u043c, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0442\u0435\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0430\u043c, \u043c\u043d\u043e\u0433\u043e \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043e SQL\/JSON, \u043d\u043e \u044d\u0442\u043e \u043d\u0435 \u043f\u0440\u043e\u043f\u0430\u0434\u0451\u0442: \u043d\u0435 \u0432 PG 15, \u0442\u0430\u043a \u0432 PG 16, \u043e\u043f\u044f\u0442\u044c \u0436\u0435.<\/p>\n<p>  \u041d\u0435\u043c\u043d\u043e\u0433\u043e \u043e \u043c\u0435\u043b\u043e\u0447\u0430\u0445, \u0441\u043b\u0443\u0447\u0438\u0432\u0448\u0438\u0445\u0441\u044f \u0434\u043e \u0432\u044b\u0445\u043e\u0434\u0430 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 PostgreSQL 15: \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0431\u044b\u043b\u0438 \u0438 \u0432 <b><a href=\"https:\/\/www.postgresql.org\/about\/news\/postgresql-15-rc-1-released-2516\/\">PostgreSQL 15 RC 1<\/a><\/b><br \/>  (Release Candidate 1) \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e Beta 4:<\/p>\n<ul>\n<li>\u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u0441\u0445\u0435\u043c\u044b \u043f\u0440\u0438 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u043f\u043e\u043c\u0435\u043d\u044f\u043b\u0441\u044f \u043d\u0430 CREATE PUBLICATION\u2026 FOR TABLES IN SCHEMA &#8230;;<\/li>\n<li>\u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u043f\u0440\u0438 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0433\u0443\u0442 \u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u0445\u0435\u043c\u044b, \u0435\u0441\u043b\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u044b \u0438 \u0441\u0445\u0435\u043c\u0430, \u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u0430;<\/li>\n<li>\u0437\u0430\u043f\u0440\u0435\u0449\u0435\u043d\u0430 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044f \u0441\u0445\u0435\u043c\u044b, \u0435\u0441\u043b\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0441\u043e \u0441\u043f\u0438\u0441\u043a\u043e\u043c \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432, \u043f\u043e\u0434\u043b\u0435\u0436\u0430\u0449\u0438\u0445 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438;<\/li>\n<li>\u0437\u0430\u043f\u0440\u0435\u0449\u0435\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043d\u043e\u0432\u043e\u0439 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445, \u0435\u0441\u043b\u0438 \u0435\u0451 ICU-\u043b\u043e\u043a\u0430\u043b\u044c \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f.<\/li>\n<\/ul>\n<p>  \u041d\u0443 \u0430 \u0432 RC 2 \u043e\u043f\u044f\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u0451\u043b \u043e\u0442\u043a\u0430\u0442 \u043d\u0430\u0437\u0430\u0434: \u043e\u0442\u043a\u0430\u0437\u0430\u043b\u0438\u0441\u044c \u043e\u0442 <a href=\"https:\/\/commitfest.postgresql.org\/30\/1651\/\">optimized order of GROUP BY keys<\/a>.<\/p>\n<p>  <b><a href=\"https:\/\/blog.rustprooflabs.com\/2022\/10\/postgres-15-config-changes\">Postgres 15 Configuration Changes<\/a><\/b><\/p>\n<p>  \u041f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c 6 \u043d\u043e\u0432\u044b\u0445 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u0432 <code>postgresql.conf<\/code>:<\/p>\n<ul>\n<li><code>recovery_prefetch<\/code> (\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e <code>try<\/code>),<\/li>\n<li><code>wal_decode_buffer_size<\/code> (\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 512kB),<\/li>\n<li><code>archive_library<\/code> (&#187;),<\/li>\n<li><code>recursive_worktable_factor<\/code> (\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 10),<\/li>\n<li><code>log_startup_progress_interval<\/code> (\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 10 \u0441\u0435\u043a.),<\/li>\n<li><code>stats_fetch_consistency<\/code> (\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e <code>cache<\/code>),<\/li>\n<\/ul>\n<p>  \u0412 \u0442\u0440\u0451\u0445 \u2014 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f:<\/p>\n<ul>\n<li><code>log_checkpoints<\/code> (\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e <code>on<\/code> \u0432\u043c\u0435\u0441\u0442\u043e <code>off<\/code>),<\/li>\n<li><code>log_autovacuum_min_duration<\/code> (\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 10 \u043c\u0438\u043d. -1),<\/li>\n<li><code>hash_mem_multiplier<\/code> (\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 2.0 \u0432\u043c\u0435\u0441\u0442\u043e 1.0).<\/li>\n<\/ul>\n<p>  \u0418 \u043e\u0434\u0438\u043d \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043e\u0442\u043c\u0435\u043d\u0438\u043b\u0438: <code>stats_temp_directory<\/code>.<\/p>\n<p>  \u0427\u0442\u043e \u044d\u0442\u043e \u0437\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0438 \u0441 \u0447\u0435\u043c \u0438\u0445 \u0435\u0434\u044f\u0442, \u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u0432 <a href=\"https:\/\/blog.rustprooflabs.com\/2022\/10\/postgres-15-config-changes\">\u044d\u0442\u043e\u0439 \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0439 \u0437\u0430\u043c\u0435\u0442\u043a\u0435<\/a> \u043e\u0442 RustProof Labs \u0438 \u0432 <a href=\"https:\/\/www.postgresql.org\/docs\/15\/index.html\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438<\/a>. \u0410 <a href=\"https:\/\/pgconfig.rustprooflabs.com\/param\/change\/14\/15\">\u0441\u043f\u0438\u0441\u043e\u043a \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439<\/a> \u0437\u0434\u0435\u0441\u044c \u0436\u0435 \u043d\u0430 RustProof.<\/p>\n<p>  <b><a href=\"https:\/\/www.crunchydata.com\/blog\/be-ready-public-schema-changes-in-postgres-15\">Be Ready! Public schema changes in Postgres 15<\/a><\/b><\/p>\n<p>  \u041e\u0431 \u044d\u0442\u043e\u043c \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0430\u0435\u0442 <i>\u041f\u043e\u043b \u0420\u044d\u043c\u0437\u0438<\/i> (Paul Ramsey, Crunchy Data). \u0415\u0433\u043e \u0432\u044b\u0432\u043e\u0434: \u0445\u043e\u0442\u044f \u0432 PostgreSQL 15 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435\u0442 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e\u0439 \u043f\u0440\u0438\u0432\u0438\u043b\u0435\u0433\u0438\u0438 \u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u044c \u0432 \u0441\u0445\u0435\u043c\u0435 public, \u043d\u0435\u0441\u043b\u043e\u0436\u043d\u043e \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u0443\u044e \u0440\u0430\u0431\u043e\u0442\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043d\u0430 \u0442\u043e\u043c \u0436\u0435 \u0443\u0440\u043e\u0432\u043d\u0435, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u0441\u0445\u0435\u043c\u044b \u0438 \u0440\u043e\u043b\u0438.<\/p>\n<p>  <b><a href=\"https:\/\/andreas.scherbaum.la\/blog\/archives\/1120-Changes-to-the-public-schema-in-PostgreSQL-15-and-how-to-handle-upgrades.html\">A &#8216;public&#8217; Schema Change in Postgres 15<\/a><\/b><\/p>\n<p>  \u0412 \u0431\u043b\u043e\u0433\u0435 <i>\u0410\u043d\u0434\u0440\u0435\u0430\u0441\u0430 \u0428\u0435\u0440\u0431\u0430\u0443\u043c\u0430<\/i> (Andreas Scherbaum), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f <a href=\"https:\/\/andreas.scherbaum.la\/blog\/\">Ads&#8217; Corner<\/a>, \u0410\u043d\u0434\u0440\u0435\u0430\u0441 \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0435\u0442, \u043f\u043e\u0447\u0435\u043c\u0443 \u043f\u0440\u0438\u0432\u0438\u043b\u0435\u0433\u0438\u044f CREATE \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u0434\u0430\u0451\u0442\u0441\u044f \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043d\u0430 \u0441\u0445\u0435\u043c\u0443 public, \u0438 \u043a\u0430\u043a \u0441 \u044d\u0442\u0438\u043c \u0431\u044b\u0442\u044c, \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u044f \u0441 PostgreSQL 14 \u043d\u0430 15. \u041f\u043e\u0434\u044b\u0442\u043e\u0436\u0438\u0432\u0430\u044f, \u043e\u043d \u043f\u0438\u0448\u0435\u0442: <i>\u0430 \u043b\u0443\u0447\u0448\u0435 \u0432\u0441\u0435\u0433\u043e \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435 \u043f\u043e\u043b\u0430\u0433\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u0441\u0445\u0435\u043c\u0443 public.<\/i><\/p>\n<h1>\u041e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435<\/h1>\n<p>  \u041a\u0430\u043a-\u0442\u043e \u0442\u0430\u043a \u0441\u043b\u043e\u0436\u0438\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u0432 \u044d\u0442\u043e\u043c \u0432\u044b\u043f\u0443\u0441\u043a\u0435 \u043c\u043d\u043e\u0433\u043e \u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<h4>PostgreSQL Internals<\/h4>\n<p>  \u0412\u044b\u0448\u043b\u0430 3-\u044f \u0447\u0430\u0441\u0442\u044c \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u043a\u043d\u0438\u0433\u0438 <i>\u0415\u0433\u043e\u0440\u0430 \u0420\u043e\u0433\u043e\u0432\u0430<\/i>: <b><a href=\"https:\/\/postgrespro.com\/blog\/pgsql\/5969741\">PostgreSQL 14. Part III.<\/a><\/b><\/p>\n<p>  Part III. Locks. Relation-Level Locks \u00b7 Row-Level Locks \u00b7 Miscellaneous Locks \u00b7 Locks in Memory.<br \/>  PDF \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u043f\u043e \u0442\u043e\u0439 \u0436\u0435 <a href=\"https:\/\/edu.postgrespro.com\/postgresql_internals-14_parts1-3_en.pdf\">\u043e\u0442\u0441\u044e\u0434\u0430<\/a>. \u041a\u0430\u0436\u0434\u0430\u044f \u043d\u043e\u0432\u0430\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043d\u0430\u044f \u0433\u043b\u0430\u0432\u0430 \u0431\u0443\u0434\u0435\u0442 \u0438 \u0434\u0430\u043b\u044c\u0448\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0432 \u044d\u0442\u043e\u0442 PDF. \u041f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430, \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u0430\u044f \u043a\u043d\u0438\u0433\u0435, &lt;a <a href=\"https:\/\/postgrespro.com\/community\/books\/internals\">postgrespro.com\/community\/books\/internals<\/a>>\u0437\u0434\u0435\u0441\u044c.<\/p>\n<p>  <b><a href=\"http:\/\/blog.cleverelephant.ca\/2022\/10\/postgresql-links.html\">Learning PostgreSQL Internals<\/a><\/b><\/p>\n<p>  \u0415\u0449\u0451 Internals \u2014 \u043e\u0442 <i>\u041f\u043e\u043b\u0430 \u0420\u044d\u043c\u0437\u0438<\/i>. \u042d\u0442\u043e \u043e\u0431\u0437\u043e\u0440 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432 \u043f\u043e Postgres, \u043a\u0443\u0434\u0430 \u0432\u043e\u0448\u043b\u0438 \u0434\u0440\u0443\u0433\u0438\u0435 Internals, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 <b><a href=\"https:\/\/www.interdb.jp\/pg\/\">The Internals of PostgreSQL<\/a><\/b> <i>\u0425\u0438\u0440\u043e\u043d\u043e\u0431\u0443 \u0421\u0443\u0437\u0443\u043a\u0438<\/i> (Hironobu Suzuki). \u0412 \u0446\u0435\u043b\u043e\u043c \u043e\u0431\u0437\u043e\u0440 \u041f\u043e\u043b\u0430 \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d \u043f\u0440\u0435\u0436\u0434\u0435 \u0432\u0441\u0435\u0433\u043e \u043d\u0430 \u043a\u043b\u0430\u0441\u0441\u0438\u043a\u043e\u0432-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 Postgres, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432 \u043d\u0451\u043c \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442 <i>\u041e\u043b\u0435\u0433 \u0411\u0430\u0440\u0442\u0443\u043d\u043e\u0432<\/i>, \u043d\u043e \u043d\u0435\u0442 \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u043a\u043d\u0438\u0433\u0443 \u0415\u0433\u043e\u0440\u0430. \u041d\u0435 \u0443\u0431\u0443\u0434\u0435\u0442: \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f (\u043d\u0435 \u0433\u043e\u0432\u043e\u0440\u044f \u043e \u0440\u0443\u0441\u0441\u043a\u043e\u0439) \u0449\u0435\u0434\u0440\u043e \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0432 \u0430\u043d\u0433\u043b\u043e\u044f\u0437\u044b\u0447\u043d\u043e\u043c Postgres-\u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435.<\/p>\n<h4>\u041c\u0430\u0439\u043a\u043b \u0421\u0442\u043e\u0443\u043d\u0431\u0440\u0435\u0439\u043a\u0435\u0440<\/h4>\n<p>  <b><a href=\"https:\/\/dsf.berkeley.edu\/papers\/fntdb07-architecture.pdf\">Architecture of a Database System<\/a><\/b><\/p>\n<p>  \u042d\u0442\u0430 \u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0432\u0435\u043b\u0438\u043a\u0438\u0439 \u041c\u0430\u0439\u043a\u043b \u0421\u0442\u043e\u0443\u043d\u0431\u0440\u0435\u0439\u043a\u0435\u0440 (Michael Stonebraker, MIT) \u0438 \u0435\u0433\u043e \u0441\u043e\u0430\u0432\u0442\u043e\u0440\u044b \u2014 <i>\u0414\u0436\u043e\u0437\u0435\u0444 \u0425\u0435\u043b\u043b\u0435\u0440\u0441\u0442\u0430\u0439\u043d<\/i> (Joseph M. Hellerstein, \u041a\u0430\u043b\u0438\u0444\u043e\u0440\u043d\u0438\u0439\u0441\u043a\u0438\u0439 \u0423\u043d\u0438\u0432\u0435\u0440\u0441\u0438\u0442\u0435\u0442 \u0432 \u0411\u0435\u0440\u043a\u043b\u0438) \u0438 <i>\u0414\u0436\u0435\u0439\u043c\u0441 \u0425\u0430\u043c\u0438\u043b\u044c\u0442\u043e\u043d<\/i> (James Hamilton, Microsoft Research) \u0441\u0444\u043e\u0440\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u043b\u0438 (\u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0432 2007-\u043c \u0433\u043e\u0434\u0443) \u0431\u0430\u0437\u043e\u0432\u044b\u0435 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u044b \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0421\u0423\u0411\u0414.<\/p>\n<p>  \u0412\u043f\u0440\u043e\u0447\u0435\u043c, \u0420\u044d\u043c\u0437\u0438 \u0441\u0441\u044b\u043b\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0434\u0440\u0443\u0433\u0443\u044e \u0440\u0430\u0431\u043e\u0442\u0443 \u0421\u0442\u043e\u0443\u043d\u0431\u0440\u0435\u0439\u043a\u0435\u0440\u0430:<br \/>  <b><a href=\"https:\/\/dsf.berkeley.edu\/papers\/ERL-M85-95.pdf\">The Design Of Postgres<\/a><\/b> \u0432 \u0441\u043e\u0430\u0432\u0442\u043e\u0440\u0441\u0442\u0432\u0435 \u0441 <i>\u041b\u043e\u0443\u0440\u0435\u043d\u0441\u043e\u043c \u0420\u043e\u0443<\/i> (Lawrence A. Rowe).<\/p>\n<h4>\u041a\u0443\u0440\u0441\u044b CMU Database Group<\/h4>\n<p>  \u0410\u0431\u0431\u0440\u0435\u0432\u0438\u0430\u0442\u0443\u0440\u0430 CMU \u2014 \u044d\u0442\u043e \u0423\u043d\u0438\u0432\u0435\u0440\u0441\u0438\u0442\u0435\u0442 \u041a\u0430\u0440\u043d\u0435\u0433\u0438 \u041c\u0435\u043b\u043b\u043e\u043d. \u0422\u0430\u043c, \u043f\u0440\u0435\u0436\u0434\u0435 \u0432\u0441\u0435\u0433\u043e, \u043e\u0447\u0435\u043d\u044c \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u0451\u0442 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 \u043d\u0430\u0448\u0438\u043c \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044f\u043c \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u043e\u0440 <i>\u042d\u043d\u0434\u0438 \u041f\u0430\u0432\u043b\u043e<\/i> (Andy Pavlo). <\/p>\n<p>  \u0412\u043e\u0442 \u043f\u043b\u0430\u043d\u044b \u043d\u0430 \u043e\u0441\u0435\u043d\u044c \u044d\u0442\u043e\u0433\u043e \u0433\u043e\u0434\u0430: <b><a href=\"https:\/\/15445.courses.cs.cmu.edu\/fall2022\/\">CMU 2022<\/a><\/b>. \u0410 \u0432\u043e\u0442 PDF-\u0444\u0430\u0439\u043b \u0441 \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u044f\u043c\u0438 \u0421\u0423\u0411\u0414: <b><a href=\"https:\/\/github.com\/Sorosliu1029\/Database-Systems\/blob\/master\/Database-System-Concepts-7th-Edition.pdf\">Database System Concepts<\/a><\/b>, \u0430\u0432\u0442\u043e\u0440\u044b <i>\u0410\u0431\u0440\u0430\u0430\u043c \u0417\u0438\u043b\u044c\u0431\u0435\u0440\u0448\u0430\u0446<\/i> (Abraham Silberschatz, Yale University), <i>\u0425\u0435\u043d\u0440\u0438 \u041a\u043e\u0440\u0442<\/i> (Henry F. Korth, Lehigh University) \u0438 <i>\u0421. \u0421\u0443\u0434\u0430\u0440\u0448\u0430\u043d<\/i> (S. Sudarshan, Indian Institute of Technology, Bombay \u2014 \u043d\u0438\u0433\u0434\u0435 \u043d\u0435 \u043d\u0430\u0448\u0451\u043b \u043f\u043e\u043b\u043d\u043e\u0433\u043e \u0438\u043c\u0435\u043d\u0438, \u0432\u0435\u0437\u0434\u0435 \u043f\u0440\u043e\u0441\u0442\u043e S). \u041d\u0430 \u044d\u0442\u043e\u0439 \u043a\u043d\u0438\u0433\u0435 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u044b \u043b\u0435\u043a\u0446\u0438\u0438 \u042d\u043d\u0434\u0438.<\/p>\n<p>  \u0410 \u044d\u0442\u043e <b><a href=\"https:\/\/www.youtube.com\/c\/CMUDatabaseGroup\/playlists\">\u043f\u043b\u0435\u0439\u043b\u0438\u0441\u0442\u044b CMU Group<\/a><\/b> \u0441 \u043c\u043d\u043e\u0433\u043e\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u043c\u0438 \u043b\u0435\u043a\u0446\u0438\u044f\u043c\u0438. <a href=\"https:\/\/15721.courses.cs.cmu.edu\/spring2017\/schedule.html\">\u0420\u0430\u0441\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043b\u0435\u043a\u0446\u0438\u0439<\/a> (\u0441\u0442\u0430\u0440\u043e\u0435, \u043d\u043e \u0442\u0430\u043c \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0444\u0430\u0439\u043b\u044b).<\/p>\n<p>  \u0412\u043e\u0442 \u043e\u0434\u0438\u043d \u0438\u0437 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u043b\u0435\u043a\u0446\u0438\u0439, \u0433\u043e\u0432\u043e\u0440\u044f\u0449\u0438\u0439 \u043e \u0433\u043b\u0443\u0431\u0438\u043d\u0435 \u043f\u0440\u043e\u043d\u0438\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u044f \u0432 \u0442\u0435\u043c\u0443: <b><a href=\"https:\/\/www.youtube.com\/watch?v=Y9H2HaRKOIw\">06 \u2014 Memory Management + Buffer Cache (CMU Intro to Database Systems \/ Fall 2022)<\/a><\/b><\/p>\n<h4>\u041e\u0441\u043d\u043e\u0432\u044b \u0438 \u0442\u0435\u043d\u0434\u0435\u043d\u0446\u0438\u0438<\/h4>\n<p>  \u0421\u043e\u0432\u0435\u0442\u0443\u0435\u043c \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u044d\u0442\u0443 \u0441\u0435\u0440\u0438\u044e: <b><a href=\"https:\/\/www.nowpublishers.com\/DBS?vol=1\">Foundations and Trends in Databases<\/a><\/b>.<\/p>\n<p>  \u0412\u044b\u0448\u043b\u043e 12 \u0442\u043e\u043c\u043e\u0432. \u0413\u043b\u0430\u0432\u0440\u0435\u0434 \u0441\u0435\u0440\u0438\u0438 <i>\u0414\u0436\u043e\u0437\u0435\u0444 \u0425\u0435\u043b\u043b\u0435\u0440\u0441\u0442\u0430\u0439\u043d<\/i> (Joseph M. Hellerstein, University of California, Berkeley) \u0438 <i>\u0421\u0443\u0440\u0430\u0434\u0436\u0438\u0442 \u0427\u0430\u0443\u0434\u0445\u0443\u0440\u0438<\/i> (Surajit Chaudhuri, Microsoft Research, Redmond)<\/p>\n<h4>Pagila 3.0 \u0438 Sakila<\/h4>\n<p>  <b><a href=\"https:\/\/github.com\/devrimgunduz\/pagila\/\">Pagila<\/a><\/b> \u043d\u0430\u0447\u0438\u043d\u0430\u043b\u0430\u0441\u044c \u043a\u0430\u043a \u043e\u043f\u0435\u043d\u0441\u043e\u0440\u0441\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0431\u0430\u0437\u044b <a href=\"https:\/\/dev.mysql.com\/doc\/sakila\/en\/\">Sakila<\/a>. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 2 \u0441\u043b\u043e\u0432\u0430 \u043e Sakila.<\/p>\n<p>  \u042d\u0442\u043e \u0445\u043e\u0440\u043e\u0448\u043e \u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0431\u0430\u0437\u0430 \u043a\u0430\u043a \u0431\u044b \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0430, \u0440\u0430\u0437\u0434\u0430\u044e\u0449\u0435\u0433\u043e \u0432 \u0430\u0440\u0435\u043d\u0434\u0443 DVD, \u0432 \u043d\u0435\u0439 \u0444\u0438\u043b\u044c\u043c\u044b, \u0430\u043a\u0442\u0451\u0440\u044b, \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044f \u0444\u0438\u043b\u044c\u043c-\u0430\u043a\u0442\u0451\u0440 \u0438 \u0433\u043b\u0430\u0432\u043d\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430, \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u044e\u0449\u0430\u044f \u0444\u0438\u043b\u044c\u043c\u044b, \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u044b, \u0430\u0440\u0435\u043d\u0434\u0443, \u0441\u043e\u0442\u0440\u0443\u0434\u043d\u0438\u043a\u043e\u0432, \u043f\u043b\u0430\u0442\u0435\u0436\u0438 \u2014 \u0432\u0441\u0435\u0433\u043e 15 \u0442\u0430\u0431\u043b\u0438\u0446. \u0415\u0451 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u043b\u0438 \u043a\u0430\u043a \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u0443\u044e \u0434\u043b\u044f MySQL, \u043d\u043e \u043f\u043e\u0437\u0436\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0442\u0434\u0430\u043b\u0438 \u043f\u043e BSD License. \u041d\u0438\u0436\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0430 \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 <a href=\"https:\/\/blog.jooq.org\/how-to-plot-an-ascii-bar-chart-with-sql\/\">\u0441\u0442\u0430\u0442\u044c\u044e<\/a>, \u0433\u0434\u0435 \u0435\u0451 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0434\u043b\u044f \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u00ab\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0445\u00bb \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 SQL.<\/p>\n<p>  \u041d\u043e Pagila \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e Sakila, \u0438 \u043d\u0430\u0440\u0430\u0449\u0438\u0432\u0430\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438. \u0412 \u043d\u043e\u0432\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438:<\/p>\n<ul>\n<li>\u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 JSONB (\u043e\u0441\u043d\u043e\u0432\u0430\u043d\u044b \u043d\u0430 \u043f\u0430\u043a\u0435\u0442\u0430\u0445 \u0438\u0437 <a href=\"http:\/\/apt.postgresql.org\">apt.postgresql.org<\/a> \u0438 <a href=\"http:\/\/yum.postgresql.org\">yum.postgresql.org<\/a>;<\/li>\n<li>\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 docker compose;<\/li>\n<li>\u0442\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0431\u0430\u0437\u0443 Pagila \u0432 \u0434\u043e\u043a\u0435\u0440\u0435 \u043f\u043e \u0448\u0430\u0433\u0430\u043c;<\/li>\n<li>\u0434\u0430\u0442\u044b \u0432 \u0434\u0430\u043d\u043d\u044b\u0445 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u044b \u0434\u043e 2022-\u0433\u043e \u0433\u043e\u0434\u0430.<\/li>\n<\/ul>\n<p>  \u0413\u043e\u0442\u043e\u0432\u044b RPM-\u044b, \u043b\u0435\u0436\u0430\u0442 \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f\u0445 YUM \u0438 zypp. \u0422\u0430\u0440\u0431\u043e\u043b <a href=\"https:\/\/github.com\/devrimgunduz\/pagila\/releases\">\u0432\u044b\u043b\u043e\u0436\u0438\u043b<\/a> <i>\u0414\u0435\u0432\u0440\u0438\u043c \u0413\u044e\u043d\u0434\u044e\u0437<\/i> (Devrim G\u00fcnd\u00fcz). \u0421\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e\u0431 \u044d\u0442\u043e\u043c <a href=\"https:\/\/people.planetpostgresql.org\/devrim\/index.php?\/archives\/120-Pagila-3.0.0-is-out-with-shiny-new-features-and-bugfixes.html\">\u0437\u0434\u0435\u0441\u044c<\/a>.<\/p>\n<p>  \u0412 \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u043c <a href=\"https:\/\/people.planetpostgresql.org\/devrim\/index.php?\/authors\/1-Devrim-Gunduz\"> \u0431\u043b\u043e\u0433\u0435 \u0414\u0435\u0432\u0440\u0438\u043c\u0430<\/a> \u043d\u0430 <a href=\"https:\/\/planet.postgresql.org\/\">\u041f\u043b\u0430\u043d\u0435\u0442\u0435 \u041f\u043e\u0441\u0442\u0433\u0440\u0435\u0441<\/a> \u043c\u043d\u043e\u0433\u043e \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0441\u0442\u0430\u0442\u0435\u0439, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043e\u043d \u043e\u0431\u044b\u0447\u043d\u043e \u043e\u0431 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 PostgreSQL \u0438 \u0441\u043e\u043f\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e \u0441\u043e\u0444\u0442\u0430 \u043d\u0430 RHEL \u0438\u043b\u0438 Rocky Linux. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043e\u043d \u0432\u044b\u043b\u043e\u0436\u0438\u043b \u043f\u0430\u043a\u0435\u0442\u044b consul \u0438 haproxy \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 PostgreSQL RPM \u0434\u043b\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 <a href=\"https:\/\/github.com\/zalando\/patroni\">patroni<\/a>, \u0447\u0442\u043e\u0431\u044b \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 \u044d\u0442\u0438\u0445 \u043f\u0430\u043a\u0435\u0442\u043e\u0432. \u041d\u043e \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u044d\u0442\u0438 \u043f\u0430\u043a\u0435\u0442\u044b \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u043b\u043e\u043c\u0430\u0442\u044c \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u0438, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a HAProxy 1.8.4 RPM \u043d\u0430 RHEL 8. \u041f\u043e\u044d\u0442\u043e\u043c\u0443, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u043b\u043e\u043c\u0430\u0442\u044c \u0447\u0443\u0436\u043e\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435, \u0432\u044b\u043b\u043e\u0436\u0438\u043b \u043d\u043e\u0432\u044b\u0435 pgdg-rhel9-extras, pgdg-rhel8-extras \u0438 pgdg-rhel7-extras \u2014 \u0434\u043b\u044f RHEL 9\/8\/7 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u2014 \u0441\u043c. <b><a href=\"https:\/\/people.planetpostgresql.org\/devrim\/index.php?\/archives\/116-New-repo-Extra-packages-for-PostgreSQL-RPM-repo.html#extended\">New repo: Extra packages for PostgreSQL RPM repo<\/a><\/b>. <\/p>\n<h4>Sakila \u0438 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438 \u0438\u0437 ASCII-\u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432<\/h4>\n<p>  <b><a href=\"https:\/\/blog.jooq.org\/how-to-plot-an-ascii-bar-chart-with-sql\/\">How to Plot an ASCII Bar Chart with SQL<\/a><\/b> \u2014 \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0435 \u0440\u0430\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u0435 \u0432 \u043d\u043e\u0441\u0442\u0430\u043b\u044c\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u0434\u0443\u0445\u0435: \u043a\u0430\u043a \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b-\u0441\u0442\u043e\u043b\u0431\u0438\u043a\u0438 \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043c\u0438 SQL? \u042d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c, \u0445\u043e\u0442\u044f \u0432\u044b\u0439\u0434\u0435\u0442 \u0438 \u043d\u0435 \u0442\u0430\u043a \u044d\u0444\u0444\u0435\u043a\u0442\u043d\u043e, \u043a\u0430\u043a \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0435 \u043d\u0430 \u0437\u0430\u0440\u0435 \u042d\u0412\u041c \u043f\u043e\u0440\u0442\u0440\u0435\u0442\u044b ASCII-\u0441\u0438\u043c\u0432\u043e\u043b\u0430\u043c\u0438.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/w4\/pj\/m3\/w4pjm3s-zxskrjugnr7i_nlfnhi.png\" data-src=\"https:\/\/habrastorage.org\/webt\/w4\/pj\/m3\/w4pjm3s-zxskrjugnr7i_nlfnhi.png\"\/><\/p>\n<p>  \u0421\u043a\u0440\u0438\u043f\u0442\u044b \u043b\u0435\u0436\u0430\u0442 <a href=\"https:\/\/github.com\/jOOQ\/sql-scripts\/blob\/main\/PostgreSQL\/bar-charts.sql\">\u0437\u0434\u0435\u0441\u044c<\/a>. \u0414\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u0443\u044e \u0432\u044b\u0448\u0435 \u0443\u0447\u0435\u0431\u043d\u0443\u044e \u0431\u0430\u0437\u0443 <a href=\"https:\/\/dev.mysql.com\/doc\/sakila\/en\/\">Sakila<\/a>. \u0410\u0432\u0442\u043e\u0440 \u2014 <a href=\"https:\/\/github.com\/lukaseder\"><i>\u041b\u0443\u043a\u0430\u0441 \u042d\u0434\u0435\u0440<\/i><\/a> (Lukas Eder), \u0432\u043e\u043e\u0431\u0449\u0435-\u0442\u043e, \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442 \u043f\u043e <a href=\"https:\/\/en.wikipedia.org\/wiki\/JOOQ_Object_Oriented_Querying\">JOOQ<\/a> (Java-\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435 \u0434\u043b\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u043d\u043e-\u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043d\u0430 \u0431\u0430\u0437\u0435 SQL).<\/p>\n<p>  \u041a\u0441\u0442\u0430\u0442\u0438, \u043e\u0431 ASCII: <i>\u041b\u0443\u043a\u0430 \u0424\u0435\u0440\u0440\u0430\u0440\u0438<\/i> (Luca Ferrari, \u043e\u043f\u0435\u043d\u0441\u043e\u0440\u0441-\u00ab\u0430\u0434\u0432\u043e\u043a\u0430\u0442\u00bb \u0438 \u0447\u0435\u043b\u043e\u0432\u0435\u0447\u0435\u0441\u043a\u043e\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e, \u0445\u043e\u0442\u044f <a href=\"https:\/\/fluca1978.github.io\/about\/\">\u043d\u0430 \u0444\u043e\u0442\u043e<\/a> \u043a\u043e\u0442) \u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u0442 \u0432 <b><a href=\"https:\/\/fluca1978.github.io\/2022\/10\/10\/PostgreSQLNumericOperators.html\">PostgreSQL ASCII numeric operators<\/a><\/b> \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u0441 \u0447\u0438\u0441\u043b\u0430\u043c\u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c ASCII-\u0441\u0438\u043c\u0432\u043e\u043b\u0430\u043c\u0438:<\/p>\n<ul>\n<li><code>|\/<\/code> \u044d\u0442\u043e <code>sqrt<\/code>;<\/li>\n<li><code>||\/<\/code> \u044d\u0442\u043e <code>cbrt<\/code>;<\/li>\n<li><code>@<\/code> \u044d\u0442\u043e <code>abs<\/code>.<\/li>\n<\/ul>\n<h4>\u0418\u0433\u0440\u043e\u0432\u044b\u0435 \u043f\u043b\u043e\u0449\u0430\u0434\u043a\u0438 Postgres<\/h4>\n<p>  <b><a href=\"https:\/\/www.crunchydata.com\/blog\/learn-postgres-at-the-playground\">Learn Postgres at the Playground<\/a><\/b> \u2014 <i>\u041a\u0440\u0435\u0439\u0433 \u041a\u0435\u0440\u0441\u0442\u0438\u043d\u0441<\/i> (Craig Kerstiens, Crunchy Data) \u043e\u0431\u043d\u0430\u0440\u043e\u0434\u043e\u0432\u0430\u043b \u0441\u0435\u0440\u0438\u044e \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0445 \u043e\u0431\u0443\u0447\u0430\u044e\u0449\u0438\u0445 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432 \u043f\u043e Postgres. \u041a \u043d\u0438\u043c \u2014 \u0441\u0432\u0435\u0436\u0438\u0435 \u0441\u043e\u0432\u0435\u0442\u044b.<\/p>\n<h4>PostgresPro EDU<\/h4>\n<p>  \u041f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u043d\u043e\u0432\u044b\u0439 \u0442\u0435\u043b\u0435\u0433\u0440\u0430\u043c-\u043a\u0430\u043d\u0430\u043b <a href=\"https:\/\/t.me\/PostgresProEdu\">PostgresPro EDU<\/a>. \u0412 \u043d\u0451\u043c \u0443\u0436\u0435 \u0446\u0435\u043b\u0430\u044f \u0441\u0435\u0440\u0438\u044f \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0445 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439. \u041f\u0435\u0440\u0432\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043a\u0430\u043d\u0430\u043b\u0430: <a href=\"https:\/\/postgrespro.ru\">Postgres Professional<\/a> \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e \u0441 <a href=\"http:\/\/www.sai.msu.ru\/?ysclid=l9etwikxjl213083112\">\u0413\u0410\u0418\u0428 \u041c\u0413\u0423<\/a> \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0438 \u043e\u043d\u043b\u0430\u0439\u043d-\u043a\u0443\u0440\u0441 \u00ab\u042f\u0437\u044b\u043a SQL\u00bb \u0434\u043b\u044f \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u043e\u0432 \u043f\u043e \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0431\u0430\u0437\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 PostgreSQL. \u041e\u043d \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0443\u0447\u0435\u0431\u043d\u043e\u0433\u043e \u043f\u043e\u0441\u043e\u0431\u0438\u044f \u0415\u0432\u0433\u0435\u043d\u0438\u044f \u041f\u0430\u0432\u043b\u043e\u0432\u0438\u0447\u0430 \u041c\u043e\u0440\u0433\u0443\u043d\u043e\u0432\u0430 <b><a href=\"https:\/\/postgrespro.ru\/education\/books\/sqlprimer\">PostgreSQL. \u041e\u0441\u043d\u043e\u0432\u044b \u044f\u0437\u044b\u043a\u0430 SQL<\/a><\/b>.<\/p>\n<p>  \u0421 21 \u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044f 2022 \u0433\u043e\u0434\u0430 <a href=\"https:\/\/openedu.ru\/course\/msu\/SQL\/\">\u043e\u0442\u043a\u0440\u044b\u0442 \u0434\u043e\u0441\u0442\u0443\u043f<\/a> \u043a \u043f\u0435\u0440\u0432\u044b\u043c \u0432\u0438\u0434\u0435\u043e\u0443\u0440\u043e\u043a\u0430\u043c \u043d\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 \u00ab\u041e\u0442\u043a\u0440\u044b\u0442\u043e\u0435 \u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u00bb \u0434\u043b\u044f \u0442\u0435\u0445, \u043a\u0442\u043e \u0443\u0436\u0435 \u0443\u0441\u043f\u0435\u043b \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c\u0441\u044f \u0440\u0430\u043d\u0435\u0435, \u0438 \u0434\u043b\u044f \u0431\u0443\u0434\u0443\u0449\u0438\u0445 \u0441\u043b\u0443\u0448\u0430\u0442\u0435\u043b\u0435\u0439.<\/p>\n<p>  \u0412\u0441\u0435\u0433\u043e \u0437\u0430\u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043e 9 \u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0440\u0430\u0437\u0434\u0435\u043b\u043e\u0432:<\/p>\n<ul>\n<li>\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0442\u0435\u043e\u0440\u0438\u0438 \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445;<\/li>\n<li>\u0432\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432 \u044f\u0437\u044b\u043a SQL;<\/li>\n<li>\u0442\u0438\u043f\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0421\u0423\u0411\u0414 PostgreSQL;<\/li>\n<li>\u043e\u0441\u043d\u043e\u0432\u044b \u044f\u0437\u044b\u043a\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445;<\/li>\n<li>\u0437\u0430\u043f\u0440\u043e\u0441\u044b;<\/li>\n<li>\u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445;<\/li>\n<li>\u0438\u043d\u0434\u0435\u043a\u0441\u044b;<\/li>\n<li>\u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438;<\/li>\n<li>\u043f\u043e\u0432\u044b\u0448\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438.<\/li>\n<\/ul>\n<p>  \u0415\u0441\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0433\u0440\u044f\u0434\u0443\u0449\u0438\u0445 \u043c\u0435\u0440\u043e\u043f\u0440\u0438\u044f\u0442\u0438\u044f\u0445 Postgres Professional:<\/p>\n<p>  23 \u043e\u043a\u0442\u044f\u0431\u0440\u044f 2022 \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0430\u044e\u0442\u0441\u044f <b>\u0441\u0442\u0443\u0434\u0435\u043d\u0442\u044b \u043d\u043e\u0432\u043e\u0441\u0438\u0431\u0438\u0440\u0441\u043a\u0438\u0445 \u0432\u0443\u0437\u043e\u0432<\/b>. \u0412\u0441\u0442\u0440\u0435\u0447\u0430 \u0432 \u0433\u043b\u0430\u0432\u043d\u043e\u043c \u043a\u043e\u0440\u043f\u0443\u0441\u0435 \u041d\u0413\u0423 (\u0443\u043b. \u041f\u0438\u0440\u043e\u0433\u043e\u0432\u0430 1, \u044d\u0442\u0430\u0436 3, \u0430\u0443\u0434\u0438\u0442\u043e\u0440\u0438\u044f 3107). \u041d\u0430\u0447\u0430\u043b\u043e \u0432\u0441\u0442\u0440\u0435\u0447\u0438 \u0432 14-00. \u0411\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e. \u0410 24-\u0433\u043e \u043e\u043a\u0442\u044f\u0431\u0440\u044f \u0441\u043e\u0441\u0442\u043e\u0438\u0442\u0441\u044f <a href=\"https:\/\/pgconf.ru\/202210\">PGConf.\u0421\u0438\u0431\u0438\u0440\u044c<\/a>.<\/p>\n<p>  \u041d\u0430 26 \u043e\u043a\u0442\u044f\u0431\u0440\u044f 2022 \u0437\u0430\u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d <b>PGMeetup.\u0411\u0430\u0440\u043d\u0430\u0443\u043b<\/b> \u0434\u043b\u044f \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u043e\u0432, \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u0432\u0430\u0442\u0435\u043b\u0435\u0439, IT-\u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u043e\u0432 \u0438 \u0432\u0441\u0435\u0445, \u043a\u0442\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442\u0441\u044f Postgres. \u0415\u0441\u0442\u044c <a href=\"https:\/\/pgconf.ru\/20221026\/talks\">\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430<\/a>). \u0410\u043b\u0442\u0430\u0439\u0441\u043a\u0438\u0439 \u0433\u043e\u0441\u0443\u0434\u0430\u0440\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0438\u0442\u0435\u0442 (\u043f\u0440-\u0442 \u0421\u043e\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439, \u0434. 68, \u0430\u0443\u0434\u0438\u0442\u043e\u0440\u0438\u044f 1\u0421). \u041d\u0430\u0447\u0430\u043b\u043e \u0432 18-00. \u0422\u043e\u0436\u0435 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e. <\/p>\n<p>  \u041a \u0441\u043b\u043e\u0432\u0443, \u043c\u0435\u0440\u043e\u043f\u0440\u0438\u044f\u0442\u0438\u0435 \u0438\u0437 \u044d\u0442\u043e\u0439 \u0441\u0435\u0440\u0438\u0438 \u043f\u0440\u043e\u0448\u043b\u043e \u0432 \u041d\u0438\u0436\u043d\u0435\u043c \u041d\u043e\u0432\u0433\u043e\u0440\u043e\u0434\u0435 \u2014 <b>PGMeetup.NN<\/b>. \u0415\u0449\u0451 \u043e\u0434\u0438\u043d \u043c\u0438\u0442\u0430\u043f \u2014 <b>\u0432 \u041c\u043e\u0441\u043a\u0432\u0435<\/b>, \u0442\u0430\u043c \u043e\u0431\u0441\u0443\u0436\u0434\u0430\u043b\u0438\u0441\u044c \u0442\u0438\u043f\u0438\u0447\u043d\u044b\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u0421\u0423\u0411\u0414 Postgres, \u0441\u043f\u043e\u0441\u043e\u0431\u044b \u0441\u0436\u0430\u0442\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 PostgreSQL \u0438 \u0448\u0430\u0440\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445. <\/p>\n<h4>\u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0439 \u0430\u0432\u0442\u043e\u0440: \u041c\u0438\u0445\u0430\u0438\u043b \u0426\u044b\u043c\u0431\u043b\u0435\u0440<\/h4>\n<p>  \u0425\u043e\u0447\u0443 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u0430\u0448\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u0430 \u043f\u043e \u0421\u0423\u0411\u0414 \u0438\u0437 \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0438\u0442\u0435\u0442\u0441\u043a\u043e\u0439 \u0441\u0440\u0435\u0434\u044b: <a href=\"https:\/\/mzym.susu.ru\/\"><i>\u041c\u0438\u0445\u0430\u0438\u043b \u0426\u044b\u043c\u0431\u043b\u0435\u0440<\/i><\/a> (\u0432 \u043b\u0430\u0442\u0438\u043d\u0438\u0446\u0435 Mikhail Zymbler) \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432 \u042e\u0423\u0440\u0413\u0423 (\u0427\u0435\u043b\u044f\u0431\u0438\u043d\u0441\u043a). \u041d\u0438 \u0440\u0430\u0437\u0443 \u043d\u0435 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u043b \u0435\u0433\u043e \u043d\u0430 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f\u0445 \u043f\u043e \u0431\u0430\u0437\u0430\u043c \u0434\u0430\u043d\u043d\u044b\u0445, \u0437\u0430\u0442\u043e \u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0437 \u043d\u0430 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f\u0445 \u043f\u043e \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u043c \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f\u043c. \u041c\u0438\u0445\u0430\u0438\u043b \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u0432\u0435\u0449\u0430\u043c\u0438, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0418\u0418 \u0434\u043b\u044f \u043c\u0435\u0434\u0438\u0446\u0438\u043d\u044b. \u0415\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043e \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u043c \u0431\u0430\u0437\u0430\u043c \u0434\u0430\u043d\u043d\u044b\u0445 \u0431\u0430\u0437\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u043d\u0430 PostgreSQL. \u0418\u0445 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u043d\u0430 \u0442\u0430\u043a\u0438\u0445 \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u0445 \u043a\u0430\u043a <a href=\"https:\/\/academia.edu\">academia.edu<\/a> (\u043d\u0443\u0436\u0435\u043d \u044d\u043a\u043a\u0430\u0443\u043d\u0442). \u0412\u043e\u0442 \u043f\u0440\u0435\u0437\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043e \u00ab\u041f\u0440\u0438\u0440\u0443\u0447\u0435\u043d\u0438\u0438 \u0441\u043b\u043e\u043d\u043e\u0432\u00bb: <b><a href=\"https:\/\/www.yumpu.com\/en\/document\/read\/53838240\/embed-parallelism-into-postgresql\">Embed Parallelism into PostgreSQL<\/a><\/b>. \u0412\u043e\u0442 \u0435\u0433\u043e \u0441\u0442\u0440\u0430\u043d\u0438\u0447\u043a\u0430 \u0441 <b><a href=\"https:\/\/mzym.susu.ru\/courses\/\">\u043a\u0443\u0440\u0441\u0430\u043c\u0438<\/a><\/b>.<\/p>\n<h4>\u042d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u044b\u0435 \u043a\u043d\u0438\u0436\u043a\u0438 \u043e\u0442 pganalyze<\/h4>\n<p>  <\/p>\n<ul>\n<li><a href=\"https:\/\/pganalyze.com\/ebooks\/advanced-database-programming-rails-postgres\">Advanced Database Programming with Rails and Postgres<\/a>;<\/li>\n<li><a href=\"https:\/\/pganalyze.com\/ebooks\/optimizing-postgres-query-performance\">Best Practices for Optimizing Postgres Query Performance<\/a>;<\/li>\n<li><a href=\"https:\/\/pganalyze.com\/ebooks\/postgres-indexing\">Effective Indexing in Postgres<\/a>;<\/li>\n<li><a href=\"https:\/\/pganalyze.com\/ebooks\/explain-slow-postgres-queries\">Finding the root cause of slow Postgres queries using EXPLAIN<\/a>;<\/li>\n<li><a href=\"https:\/\/pganalyze.com\/ebooks\/efficient-search-in-rails-with-postgres\">Efficient Search in Rails with Postgres<\/a>;<\/li>\n<li><a href=\"https:\/\/pganalyze.com\/ebooks\/monitoring-postgres-logs\">The Most Important Events to Monitor in Your Postgres Logs<\/a>.<\/li>\n<\/ul>\n<p> \u0421\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0439 <a href=\"https:\/\/pganalyze.com\/resources\/ebooks\">\u0437\u0434\u0435\u0441\u044c<\/a>.<\/p>\n<h4>\u043a\u043d\u0438\u0433\u0430: Mastering PostGIS and OpenStreetMap<\/h4>\n<p>  \u042d\u0442\u0443 <a href=\"https:\/\/blog.rustprooflabs.com\/2022\/10\/announce-mastering-postgis-openstreemap\">\u043a\u043d\u0438\u0433\u0443<\/a> \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u0441\u043e\u0442\u0440\u0443\u0434\u043d\u0438\u043a RustProof Labs <i>\u0420\u0430\u0439\u0430\u043d \u041b\u0430\u043c\u0431\u0435\u0440\u0442<\/i> (Ryan Lambert). \u041e\u043d \u0436\u0435 \u0434\u0430\u043b \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 <a href=\"https:\/\/book.postgis-osm.com\/ch_pgosm\/denver-area-extract.html\">\u043e\u0434\u043d\u0443 \u0438\u0437 \u0433\u043b\u0430\u0432\u043e\u043a<\/a> \u0432 \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u0435. \u0410 \u0442\u0430\u043a \u0441\u0430\u043c\u0430 \u043a\u043d\u0438\u0433\u0430 <a href=\"https:\/\/postgis-osm.com\/buy\">\u0441\u0442\u043e\u0438\u0442 100 \u0431\u0430\u043a\u0441\u043e\u0432<\/a>.<\/p>\n<h3>PG(SQL)-\u043f\u044f\u0442\u043d\u0435\u0446\u044b<\/h3>\n<p>  \u0422\u0430\u043a \u043c\u044b <a href=\"https:\/\/habr.com\/ru\/company\/postgrespro\/blog\/504504\/?ysclid=l97966qiq5193332914\">\u0432 \u0441\u0432\u043e\u0451 \u0432\u0440\u0435\u043c\u044f<\/a> \u043f\u0435\u0440\u0435\u0432\u0435\u043b\u0438 Phridays. \u041d\u0435\u0434\u0430\u0432\u043d\u043e \u0440\u043e\u0434\u0438\u043b\u0441\u044f \u043b\u044e\u0431\u043e\u043f\u044b\u0442\u043d\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u043b <i>\u0420\u0430\u0439\u0430\u043d \u0411\u0443\u0437<\/i> (Ryan Booz, CTO EnergyCAP), \u043d\u0430\u0437\u0432\u0430\u043d\u043d\u044b\u0439 \u0438\u043c <b><a href=\"https:\/\/www.softwareandbooz.com\/pgsql-phriday-001-invite\/\">PGSQL Phriday<\/a><\/b>: \u0440\u0430\u0437 \u0432 \u043c\u0435\u0441\u044f\u0446 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u0435\u043b\u0438 Postgres-\u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430 \u043f\u0438\u0448\u0443\u0442 \u0432 \u0431\u043b\u043e\u0433. \u041d\u043e \u043d\u0435 \u0430\u0431\u044b \u0447\u0442\u043e. \u041f\u043e\u043a\u0430 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c 2 \u0441\u043f\u0440\u0430\u0432\u0435\u0434\u043b\u0438\u0432\u044b\u0435 \u0437\u0430\u043c\u0435\u0442\u043a\u0438 \u0438 \u043e\u0434\u043d\u0443 \u0444\u0435\u0439\u043a\u043e\u0432\u0443\u044e.<\/p>\n<p>  \u0420\u0430\u0439\u0430\u043d \u043f\u0440\u0438\u0437\u043d\u0430\u0451\u0442\u0441\u044f, \u0447\u0442\u043e \u0432\u0434\u043e\u0445\u043d\u043e\u0432\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0442\u043e\u043f\u0438\u043a\u0430 \u043f\u0435\u0440\u0432\u043e\u0439 \u043f\u044f\u0442\u043d\u0435\u0446\u044b \u043e\u043d \u0447\u0435\u0440\u043f\u0430\u043b \u0438\u0437 \u0434\u043e\u043a\u043b\u0430\u0434\u0430 <i>\u0418\u043b\u044c\u0438 \u041a\u043e\u0441\u043c\u043e\u0434\u0435\u043c\u044c\u044f\u043d\u0441\u043a\u043e\u0433\u043e<\/i> \u043d\u0430 PGConf NYC: <i>PostgreSQL Worst Practices<\/i> (\u043d\u043e \u043c\u044b \u0434\u0430\u0451\u043c \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u0440\u0443\u0441\u0441\u043a\u043e\u044f\u0437\u044b\u0447\u043d\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e <a href=\"https:\/\/www.youtube.com\/watch?v=HxwLCyCY8ec\">\u043d\u0430 Highload++<\/a>, \u0430 \u0441\u0430\u043c \u0418\u043b\u044c\u044f, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0432\u0434\u043e\u0445\u043d\u043e\u0432\u043b\u044f\u043b\u0441\u044f <a href=\"https:\/\/www.youtube.com\/watch?v=5QZtkOg_wk0\">\u0412\u0440\u0435\u0434\u043d\u044b\u043c\u0438 \u0441\u043e\u0432\u0435\u0442\u0430\u043c\u0438 \u0413\u0440\u0438\u0433\u043e\u0440\u0438\u044f \u041e\u0441\u0442\u0435\u0440\u0430<\/a>). \u041a\u043e\u0440\u043e\u0447\u0435, \u0432 \u044d\u0442\u043e\u0439 \u0438\u0433\u0440\u0435 \u0420\u0430\u0439\u0430\u043d\u0430 \u043e\u0434\u0438\u043d \u0438\u0437 \u0442\u0440\u0451\u0445 \u0441\u043e\u0432\u0435\u0442\u043e\u0432 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0432\u0440\u0435\u0434\u043d\u044b\u043c.<\/p>\n<p>  \u041f\u043e \u043f\u043e\u0432\u043e\u0434\u0443 \u043d\u0435\u0439\u043c\u0438\u043d\u0433\u0430: \u0420\u0430\u0439\u0430\u043d \u043d\u0435 \u0437\u043d\u0430\u043b, \u0447\u0442\u043e <i>\u041f\u044f\u0442\u043d\u0435\u0446\u044b<\/i> \u0434\u043e \u043d\u0435\u0433\u043e \u0443\u0436\u0435 \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u043b <i>\u0428\u043e\u043d \u0422\u043e\u043c\u0430\u0441<\/i> (Shaun Thomas). \u0428\u043e\u043d \u043d\u0435 \u043e\u0431\u0438\u0434\u0435\u043b\u0441\u044f. \u041f\u044f\u0442\u043d\u0435\u0446\u044b \u0428\u043e\u043d\u0430 \u043d\u0430\u0437\u044b\u0432\u0430\u043b\u0438\u0441\u044c \u0447\u0443\u0442\u044c \u043f\u043e-\u0434\u0440\u0443\u0433\u043e\u043c\u0443: PG Phridays, \u0438 \u043a\u0430\u043a\u043e\u0435-\u0442\u043e \u0432\u0440\u0435\u043c\u044f \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u043b\u0438 \u043a\u0430\u0436\u0434\u0443\u044e \u043f\u044f\u0442\u043d\u0438\u0446\u0443, \u0430 \u043d\u0435 \u0440\u0430\u0437 \u0432 \u043c\u0435\u0441\u044f\u0446, \u043a\u0430\u043a \u0443 \u0420\u0430\u0439\u0430\u043d\u0430. \u0418 <a href=\"https:\/\/bonesmoses.org\/tags\/pg-phriday\/page\/5\/\">\u043d\u0430\u0447\u0438\u043d\u0430\u043b<\/a> \u0428\u043e\u043d \u043f\u044f\u0442\u043d\u0435\u0446\u044b \u043b\u0435\u0442\u043e\u043c 2015-\u0433\u043e (\u0438 \u0442\u043e\u0436\u0435 \u0441 \u0432\u0440\u0435\u0434\u043d\u044b\u0445 \u0441\u043e\u0432\u0435\u0442\u043e\u0432: <b><a href=\"https:\/\/bonesmoses.org\/2015\/pg-phriday-10-ways-to-ruin-performance-in-the-loop\/\">10 Ways to Ruin Performance: In The Loop<\/a><\/b>), \u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0435\u0440\u0435\u0437 \u043f\u0430\u0440\u0443 \u043b\u0435\u0442 \u044d\u0442\u043e\u0442 \u0431\u043b\u043e\u0433 <a href=\"https:\/\/www.2ndquadrant.com\/en\/blog\/author\/shaun-thomas\/page\/3\/\">\u043f\u0435\u0440\u0435\u043a\u043e\u0447\u0435\u0432\u0430\u043b<\/a> \u043f\u043e\u0434 \u043a\u0440\u044b\u0448\u0443 2ndQuadrant (EDB).<\/p>\n<p>  \u0422\u0435\u043c, \u0437\u0430\u0442\u0440\u043e\u043d\u0443\u0442\u044b\u0445 \u0428\u043e\u043d\u043e\u043c, \u043d\u0435 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0438\u0442\u044c. <a href=\"https:\/\/habr.com\/ru\/company\/postgrespro\/blog\/504504\/?ysclid=l97966qiq5193332914\">\u041c\u044b \u0441\u0441\u044b\u043b\u0430\u043b\u0438\u0441\u044c<\/a>, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0430 \u0442\u0430\u043a\u0438\u0435:<\/p>\n<ul>\n<li><a href=\"https:\/\/www.2ndquadrant.com\/en\/blog\/10-things-postgres-could-improve-part-1\/\">\u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0441 ID \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0439<\/a>;<\/li>\n<li><a href=\"https:\/\/www.2ndquadrant.com\/en\/blog\/pg-phriday-10-things-postgres-could-improve-part-2\/\">\u043d\u0435\u043f\u0440\u0438\u044f\u0442\u043d\u044b\u0435 \u0441\u044e\u0440\u043f\u0440\u0438\u0437\u044b \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438<\/a>;<\/li>\n<li><a href=\"https:\/\/www.2ndquadrant.com\/en\/blog\/pg-phriday-10-things-postgres-could-improve-part-3\/\">MVCC \u0438 \u043f\u043e\u0447\u0435\u043c\u0443 \u043d\u0430\u0434\u043e \u0431\u044b\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0441 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435\u043c<\/a>.<\/li>\n<\/ul>\n<p>  \u0410 <a href=\"https:\/\/habr.com\/ru\/company\/postgrespro\/blog\/658783\/?ysclid=l97962iy86375854509\">\u043f\u043e\u0437\u0436\u0435<\/a> \u2014 \u043d\u0430 <b><a href=\"https:\/\/www.enterprisedb.com\/blog\/pg-phriday-tidying-vacuum\">Tidying Up With VACUUM<\/a><\/b><\/p>\n<h2>\u041e\u0442\u043a\u0440\u044b\u0442\u0438\u044f\/\u0417\u0430\u043a\u0440\u044b\u0442\u0438\u044f<\/h2>\n<p>  <b><a href=\"https:\/\/www.citusdata.com\/blog\/2022\/09\/12\/distributed-postgres-goes-full-open-source-with-citus\/\">Distributed Postgres goes full open source with Citus: why, what &amp; how<\/a><\/b><\/p>\n<p>  Citus \u043e\u0442\u043a\u0440\u044b\u043b\u0438 \u0442\u0435\u043f\u0435\u0440\u044c \u0443\u0436\u0435 \u0432\u0441\u0435 \u0444\u0438\u0447\u0438 \u0441\u0432\u043e\u0435\u0433\u043e Enterprise \u0432 Citus 11. <i>\u0414\u0436\u0435\u043b\u0442\u0435 \u0424\u0435\u043d\u043d\u0435\u043c\u0430<\/i> (Jelte Fennema) \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0435\u0442:<br \/>  <i>\u042d\u0442\u043e \u0441\u0432\u044f\u0437\u0430\u043d\u043e \u0441 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435\u043c \u0431\u0438\u0437\u043d\u0435\u0441-\u043c\u043e\u0434\u0435\u043b\u0438. Citus \u043d\u0430\u0447\u0438\u043d\u0430\u043b\u0441\u044f \u043a\u0430\u043a \u0444\u043e\u0440\u043a PostgreSQL \u0432 2011, \u0442\u043e\u0433\u0434\u0430 \u0431\u0438\u0437\u043d\u0435\u0441-\u043c\u043e\u0434\u0435\u043b\u044c \u0431\u044b\u043b\u0430 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0430 \u043d\u0430 \u043f\u0440\u043e\u0434\u0430\u0436\u0435 Enterprise-\u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0439 \u0438 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u043e\u0432 \u043f\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0435. \u0412 2016 \u043c\u044b \u043e\u0442\u043a\u0430\u0437\u0430\u043b\u0438\u0441\u044c \u043e\u0442 \u0438\u0434\u0435\u0438 \u0444\u043e\u0440\u043a\u0430 (un-forked) \u0438 \u043e\u0442\u043a\u0440\u044b\u043b\u0438 \u043e\u0441\u043d\u043e\u0432\u043d\u0443\u044e \u043c\u0430\u0441\u0441\u0443 \u043a\u043e\u0434\u0430. \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043c\u044b \u043e\u0442\u0434\u0435\u043b\u044f\u043b\u0438 Enterprise \u0441 \u0435\u0433\u043e \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u044f\u043c\u0438 \u043e\u0442 \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0442\u0443\u0434\u0430 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 Enterprise-\u0444\u0438\u0447\u0438.<\/p>\n<p>  \u041d\u043e \u0441\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u0431\u0438\u0437\u043d\u0435\u0441-\u043c\u043e\u0434\u0435\u043b\u044c \u0441\u0442\u0430\u043b\u0430 \u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f \u0432 \u0441\u0442\u043e\u0440\u043e\u043d\u0443 \u043e\u0442 \u043f\u0440\u043e\u0434\u0430\u0436\u0438 Enterprise-\u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0439. \u0421\u0435\u0439\u0447\u0430\u0441 \u043d\u0430\u0448\u0430 \u0431\u0438\u0437\u043d\u0435\u0441-\u043c\u043e\u0434\u0435\u043b\u044c \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0430 \u0432\u043e\u043a\u0440\u0443\u0433 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0445 \u0443\u0441\u043b\u0443\u0433 (managed service): <a href=\"https:\/\/azure.microsoft.com\/en-us\/pricing\/details\/postgresql\/hyperscale-citus\/\">Azure Database for PostgreSQL \u2014 Hyperscale (Citus)<\/a>. \u041a\u0430\u043a \u0432\u044b \u0434\u043e\u0433\u0430\u0434\u044b\u0432\u0430\u0435\u0442\u0435\u0441\u044c, \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043a \u043e\u043f\u0435\u043d\u0441\u043e\u0440\u0441\u043d\u043e\u043c\u0443 Citus \u0444\u0438\u0447\u0438 \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f.<\/i><\/p>\n<p>  \u041f\u043e\u043b\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0445 \u044d\u043d\u0442\u0435\u0440\u043f\u0440\u0430\u0439\u0437\u043d\u044b\u0445 \u0444\u0438\u0447 <a href=\"https:\/\/www.citusdata.com\/updates\/v11-0\/#enterprise-opensource\">\u0437\u0434\u0435\u0441\u044c<\/a>. \u0421\u0440\u0435\u0434\u0438 \u043d\u0438\u0445, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0435\u0431\u043b\u043e\u043a\u0438\u0440\u0443\u044e\u0449\u0438\u0439 \u0440\u0435\u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u0445 \u0448\u0430\u0440\u0434\u043e\u0432 (<a href=\"https:\/\/docs.citusdata.com\/en\/stable\/admin_guide\/cluster_management.html?highlight=rebalance&amp;_gl=1*19fulmu*_ga*OTI1MDc5MDAwLjE2NTE3Nzg4Njc.*_ga_DS5S1RKEB7*MTY2NjAwMTE0NS4xNi4xLjE2NjYwMDE4NjkuMC4wLjA.#rebalance-shards-without-downtime\">non-blocking shard rebalancer<\/a> \u2014 \u0434\u043e \u044d\u0442\u043e\u0433\u043e \u0440\u0435\u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u0431\u044b\u043b \u043e\u0442\u043a\u0440\u044b\u0442, \u043d\u043e non-blocking \u043d\u0435 \u0431\u044b\u043b \u0442\u0430\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d). \u041c\u043e\u0436\u043d\u043e \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0431\u043b\u043e\u0433 \u043e <b><a href=\"https:\/\/www.citusdata.com\/updates\/v11-1\/\">Citus 11.1<\/a><\/b>, \u0433\u0438\u0442\u0445\u0430\u0431 <a href=\"https:\/\/github.com\/citusdata\/citus\">\u0437\u0434\u0435\u0441\u044c<\/a>.<\/p>\n<p>  <b><a href=\"https:\/\/blog.cloudflare.com\/open-sourcing-our-fork-of-pgbouncer\/\">Cloudflare Open Sources Its PgBouncer Fork<\/a><\/b><\/p>\n<p>  <b>CF PgBouncer<\/b><\/p>\n<p>  Cloudflare \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u043b\u0430 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 \u0444\u043e\u0440\u043a PgBouncer, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u043b\u0430 \u0431\u0430\u0433\u0444\u0438\u043a\u0441\u044b \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0438 \u043d\u043e\u0432\u0448\u0435\u0441\u0442\u0432\u0430, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441 \u0438\u0437\u043e\u043b\u044f\u0446\u0438\u0435\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 (\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 CPU \u0438 \u043f\u0430\u043c\u044f\u0442\u0438, \u0434\u0438\u0441\u043a\u043e\u0432\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0432\u0432\u043e\u0434\u0430-\u0432\u044b\u0432\u043e\u0434\u0430). \u0422\u0435\u043f\u0435\u0440\u044c, \u043f\u0438\u0448\u0435\u0442 <i>\u0414\u0436\u0430\u0441\u0442\u0438\u043d \u041a\u0432\u0430\u043d<\/i> (Justin Kwan, Cloudflare), \u043a\u043e\u0434 \u043e\u0442\u043a\u0440\u044b\u0442.<\/p>\n<p>  \u0410 \u0432\u043e\u0442 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e <b>Heroku<\/b> \u0441\u0434\u0435\u043b\u0430\u043b\u043e \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435 \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u043f\u043e\u043b\u043e\u0436\u043d\u043e\u043c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438: <b><a href=\"https:\/\/news.ycombinator.com\/item?id=32594533\">Removal of Heroku free product plans<\/a><\/b>. \u041e\u043d\u0438 \u0434\u0430\u0436\u0435 \u043d\u0430\u0437\u0432\u0430\u043b\u0438 \u044d\u0442\u043e \u043a\u0440\u0430\u0441\u0438\u0432\u043e <b>\u041d\u043e\u0432\u0430\u044f \u0433\u043b\u0430\u0432\u0430<\/b>: <b><a href=\"https:\/\/blog.heroku.com\/next-chapter\">Heroku\u2019s Next Chapter<\/a><\/b><\/p>\n<p>  \u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d\u0430 <a href=\"https:\/\/github.com\/orgs\/heroku\/projects\/130\">Heroku Roadmap<\/a>. \u041c\u0443\u0434\u0440\u044b\u0439 <i>\u0411\u043e\u0431 \u0423\u0430\u0439\u0437<\/i> (Bob Wise, Heroku General Manager \u0438 \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0432\u0438\u0446\u0435-\u043f\u0440\u0435\u0437\u0438\u0434\u0435\u043d\u0442 Salesforce, \u0432\u043b\u0430\u0434\u0435\u044e\u0449\u0435\u0439 \u0441\u0435\u0439\u0447\u0430\u0441 Heroku) \u0433\u043e\u0432\u043e\u0440\u0438\u043b \u043e \u0432\u0430\u0436\u043d\u043e\u0441\u0442\u0438 \u044d\u0442\u043e\u0433\u043e \u0448\u0430\u0433\u0430 \u0434\u043b\u044f \u043d\u0430\u0434\u0451\u0436\u043d\u044b\u0439 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u0442\u0435\u0445 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0438 \u043c\u0430\u043b\u044b\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u0441\u0442\u0430\u0432\u043a\u0443 \u043d\u0430 Heroku, \u043e \u0444\u043e\u043a\u0443\u0441\u0438\u0440\u043e\u0432\u043a\u0435 \u043d\u0430 <i>mission critical<\/i> \u0438 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0435 \u043f\u043b\u0430\u043d\u044b \u0438 \u043d\u0435\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u044d\u043a\u043a\u0430\u0443\u043d\u0442\u044b \u0431\u0443\u0434\u0443\u0442 \u043b\u0438\u043a\u0432\u0438\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u044b. \u041d\u043e \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u0441\u044f \u0432\u043a\u043b\u0430\u0434 \u0432 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 \u043a\u043e\u0434 <a href=\"https:\/\/buildpacks.io\/\">Cloud Native Buildpacks<\/a>.<\/p>\n<h2>\u0410\u043d\u043e\u043d\u0438\u043c\u0430\u0439\u0437\u0435\u0440\u044b<\/h2>\n<p>  \u0421\u0440\u0430\u0437\u0443 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0435\u0439 \u043d\u0430\u0448\u0438\u0445 \u0432\u044b\u043f\u0443\u0441\u043a\u043e\u0432 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u044d\u0442\u0438\u043c \u043a\u043b\u0430\u0441\u0441\u043e\u043c \u041f\u041e. \u041d\u0430\u0431\u0440\u043e\u0441\u0430\u0435\u043c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0441\u044b\u043b\u043a\u0438 \u0441 \u043a\u0440\u0430\u0442\u043a\u0438\u043c\u0438 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u043c\u0438.<\/p>\n<p>  <b><a href=\"https:\/\/www.postgresql.org\/about\/news\/postgresql-anonymizer-11-privacy-by-default-for-postgres-2253\/\">PostgreSQL Anonymizer 1.1<\/a><\/b><\/p>\n<p>  \u041c\u044b \u043d\u0435 \u0440\u0430\u0437 \u043f\u0438\u0441\u0430\u043b\u0438 \u043e\u0431 \u044d\u0442\u043e\u043c \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0438 Dalibo (\u0432 <code>shred_preload_libraries<\/code> \u0432 <code>postgresql.conf<\/code> \u043f\u0440\u043e\u0441\u0442\u043e <code>anon<\/code>, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0414\u0430\u043c\u044c\u044f\u043d \u041a\u043b\u043e\u0448\u0430\u0440, Damien Clochard), \u0441\u043b\u0435\u0434\u0438\u043b\u0438 \u0437\u0430 \u0435\u0433\u043e \u0432\u0437\u0440\u043e\u0441\u043b\u0435\u043d\u0438\u0435\u043c. PostgreSQL Anonymizer \u043f\u0440\u044f\u0447\u0435\u0442 \u0438\u043b\u0438 \u0437\u0430\u043c\u0435\u043d\u044f\u0435\u0442 \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 (personally identifiable information \u2014 PII), \u0438\u043b\u0438 \u043a\u043e\u043c\u043c\u0435\u0440\u0447\u0435\u0441\u043a\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0431\u0430\u0437\u0430\u0445 PostgreSQL. \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 3 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0438 \u0430\u043d\u043e\u043d\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438:<\/p>\n<ul>\n<li>\u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043c\u0430\u0441\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 (<a href=\"https:\/\/postgresql-anonymizer.readthedocs.io\/en\/latest\/dynamic_masking\/\">dynamic masking<\/a>),<\/li>\n<li>\u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043c\u0430\u0441\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 (<a href=\"https:\/\/postgresql-anonymizer.readthedocs.io\/en\/latest\/static_masking\/\">static masking<\/a>) \u0438<\/li>\n<li><a href=\"https:\/\/postgresql-anonymizer.readthedocs.io\/en\/latest\/anonymous_dumps\/\">anonymous dumps<\/a> (\u043f\u0440\u043e\u0441\u0442\u043e \u044d\u043a\u0441\u043f\u043e\u0440\u0442 \u043c\u0430\u0441\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 SQL-\u0444\u0430\u0439\u043b).<\/li>\n<\/ul>\n<p>  \u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u043d\u0430\u0431\u043e\u0440 <a href=\"https:\/\/postgresql-anonymizer.readthedocs.io\/en\/latest\/masking_functions\/\">\u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u043c\u0430\u0441\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f<\/a>, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a:<br \/>  Substitution, Randomization, Faking, Pseudonymization, Partial Scrambling, Shuffling, Noise Addition and Generalization. \u041d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0438\u0445 \u0433\u043e\u0432\u043e\u0440\u044f\u0442 \u0437\u0430 \u0441\u0435\u0431\u044f, \u043d\u0430 \u044d\u0442\u043e\u0439 <a href=\"https:\/\/postgresql-anonymizer.readthedocs.io\/en\/latest\/masking_functions\/\">\u0441\u0442\u0440\u0430\u043d\u0438\u0447\u043a\u0435 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438<\/a> \u0435\u0441\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0438. <\/p>\n<p>  \u0412 \u0432\u0435\u0440\u0441\u0438\u0438 1.1 \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c <a href=\"https:\/\/postgresql-anonymizer.readthedocs.io\/en\/latest\/privacy_by_default\/\">\u0437\u0430\u0449\u0438\u0442\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e<\/a>. \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u0432\u0441\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u044b \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e (\u0431\u0435\u0437 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u0430\u0432\u0438\u043b \u043c\u0430\u0441\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f) \u043c\u0430\u0441\u043a\u0438\u0440\u0443\u044e\u0442\u0441\u044f. \u041d\u043e \u044d\u0442\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u043a\u0430 \u0432 \u0431\u0435\u0442\u0430, \u0430 \u0441\u0442\u0430\u043d\u0435\u0442 \u0433\u043e\u0442\u043e\u0432\u043e\u0439 \u0434\u043b\u044f \u043f\u0440\u043e\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u043e\u0439 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 2.0.<\/p>\n<p>  \u0414\u0440\u0443\u0433\u043e\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u2014 \u0432 <b><a href=\"https:\/\/postgresql-anonymizer.readthedocs.io\/en\/latest\/anonymous_dumps\/\">Anonymous Dumps (pg_dump_anon)<\/a><\/b>. <code>pg_dump_anon<\/code> \u0431\u044b\u043b\u043e bash-\u043a\u0440\u0438\u043f\u0442\u043e\u043c. \u0415\u0433\u043e \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u043b\u0438 \u043d\u0430 Go. \u0421\u0442\u0430\u0440\u044b\u0439 \u0441\u043a\u0440\u0438\u043f\u0442 \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043b\u0438 \u0432 <code>pg_dump_anon.sh<\/code> \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u043b\u0438 \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u0438. \u041d\u043e \u0432 \u0432\u0435\u0440\u0441\u0438\u0438 2.0 \u0435\u0433\u043e \u0443\u0436\u0435 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442.<\/p>\n<p>  \u041c\u043e\u0436\u043d\u043e \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u043e\u0431 \u044d\u0442\u043e\u043c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 \u0431\u043b\u043e\u0433\u0435 Alibaba Cloud <b><a href=\"https:\/\/www.alibabacloud.com\/blog\/how-to-mask-sensitive-information-on-postgresql-using-anon-plug-in_597716\">How to Mask Sensitive Information on PostgreSQL Using Anon Plug-in<\/a><\/b>. \u0422\u0430\u043c \u0435\u0441\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0440\u0430\u0437\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0432 \u043c\u0430\u0441\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<p>  <b><a href=\"https:\/\/www.cybertec-postgresql.com\/en\/products\/data-masking-for-postgresql\/\">Data Masking For PostgreSQL<\/a><\/b><\/p>\n<p>  \u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0441\u044f \u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0438 <b>pg_datamask<\/b>, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u043e\u043c \u0432 Cybertec. \u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u0447\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043e\u0434\u0438\u043d \u0438\u0437 \u0434\u0432\u0443\u0445 \u043f\u0443\u0442\u0435\u0439: \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u2014 generic masking: \u0435\u0441\u0442\u044c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0435\u0441\u0442\u044c \u0432\u0441\u0451 (\u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u044e\u0442 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435) \u0434\u043b\u044f \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u043c\u0430\u0441\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u041f\u043e\u0447\u0442\u0438 \u0432\u0441\u0435\u0433\u0434\u0430 \u044d\u0442\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e. \u0415\u0441\u043b\u0438 \u043d\u0435\u0442, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0430\u043c\u043e\u043c\u0443 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0443\u0436\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0434\u043b\u044f \u043c\u0430\u0441\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<p>  <b><a href=\"https:\/\/github.com\/diffix\/pg_diffix\">Open Diffix (pg_diffix)<\/a><\/b><\/p>\n<p>  <b>pg_diffix<\/b> \u2014 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 PostgreSQL \u0434\u043b\u044f \u0441\u0438\u043b\u044c\u043d\u043e\u0439 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0430\u043d\u043e\u043d\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438. \u041e\u043d\u043e \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u0443\u0435\u0442, \u0447\u0442\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043f\u0440\u043e\u0441\u0442\u044b\u0445 SQL-\u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0431\u0443\u0434\u0443\u0442 \u0430\u043d\u043e\u043d\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u044b. \u0415\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e <a href=\"https:\/\/www.open-diffix.org\/en\/download\/\">\u0441\u043a\u0430\u0447\u0430\u0442\u044c<\/a>, \u0430 \u043c\u043e\u0436\u043d\u043e <a href=\"https:\/\/www.open-diffix.org\/en\/demo\/\">\u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u043e\u043d\u043b\u0430\u0439\u043d-\u0434\u0435\u043c\u043e<\/a>. \u041d\u0430 \u0438\u0445 \u0433\u0438\u0442\u0445\u0430\u0431\u0435 \u0435\u0441\u0442\u044c \u043c\u043d\u043e\u0433\u043e \u0443\u0447\u0435\u0431\u043d\u044b\u0445 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432 \u043f\u043e diffix:<br \/>  <a href=\"https:\/\/github.com\/diffix\/pg_diffix\/blob\/master\/docs\/admin_tutorial.md\">\u043e\u0431\u0443\u0447\u0430\u043b\u043a\u0430 \u0434\u043b\u044f \u0430\u0434\u043c\u0438\u043d\u0430<\/a>,<br \/>  <a href=\"https:\/\/github.com\/diffix\/pg_diffix\/blob\/master\/docs\/admin_guide.md\">\u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u0430\u0434\u043c\u0438\u043d\u0430<\/a>,<br \/>  <a href=\"https:\/\/github.com\/diffix\/pg_diffix\/blob\/master\/docs\/banking.ipynb\">\u043a\u043d\u0438\u0436\u043a\u0430 \u0431\u0430\u043d\u043a\u0438\u0440\u0430<\/a> (\u0441 \u043f\u0440\u0430\u0432\u0434\u043e\u043f\u043e\u0434\u043e\u0431\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438) \u0438<br \/>  <a href=\"https:\/\/github.com\/diffix\/pg_diffix\/blob\/master\/docs\/analyst_guide.md\"> \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u0434\u043b\u044f \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0430<\/a>.<\/p>\n<p>  <b><a href=\"https:\/\/www.postgresql.org\/docs\/15\/sepgsql.html\">sepgsql<\/a><\/b><\/p>\n<p>  \u042d\u0442\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c \u0434\u043b\u044f \u043c\u0430\u043d\u0434\u0430\u0442\u043d\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0430. \u0412 \u043d\u0451\u043c \u0435\u0441\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043c\u0430\u0441\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. <\/p>\n<h3>PLV8<\/h3>\n<p>  \u041c\u043d\u0435 \u0434\u043e\u0432\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c plv8. \u042d\u0442\u043e, \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c, \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0438 \u0443\u0441\u0438\u043b\u0438\u0439. \u0410 \u044f\u0437\u044b\u043a \u0432\u0430\u0436\u043d\u044b\u0439, \u043e\u043d, \u0445\u043e\u0442\u044c \u0438 \u043d\u0435 \u0432\u0445\u043e\u0434\u0438\u0442 \u0432 4 \u044f\u0437\u044b\u043a\u0430 \u00ab\u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438\u00bb \u0434\u043b\u044f PostgreSQL (\u043a\u0441\u0442\u0430\u0442\u0438, \u043f\u043e\u0447\u0438\u0442\u0430\u0439\u0442\u0435 \u0441\u0442\u0430\u0442\u044c\u044e <i>\u0418\u0432\u0430\u043d\u0430 \u041f\u0430\u043d\u0447\u0435\u043d\u043a\u043e<\/i> <b><a href=\"https:\/\/habr.com\/ru\/company\/postgrespro\/blog\/502254\/\">PostgreSQL: \u0421\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0430 \u00ab\u0447\u0435\u043b\u043e\u0432\u0435\u0447\u0435\u0441\u043a\u043e\u043c\u00bb \u044f\u0437\u044b\u043a\u0435: PL\/Perl, PL\/Python, PL\/v8<\/a><\/b>), \u043d\u043e \u043e\u043d \u043c\u043e\u0449\u043d\u044b\u0439 \u0438 \u0443\u0434\u043e\u0431\u043d\u044b\u0439, \u0438 \u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0438\u043c \u0447\u0430\u0441\u0442\u043e.<\/p>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u0438\u0437\u0440\u044f\u0434\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u0440\u044b\u0432\u0430 \u0432 \u0430\u0432\u0433\u0443\u0441\u0442\u0435 \u0432\u044b\u0448\u043b\u0438 2 \u0432\u0435\u0440\u0441\u0438\u0438 <a href=\"https:\/\/github.com\/plv8\/plv8\">PL\/v8 (\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f plv8)<\/a>:<br \/>  <b><a href=\"https:\/\/github.com\/plv8\/plv8\/releases\/tag\/v3.1.4\">plv 8 3.1.4<\/a><\/b><br \/>  \u0438<br \/>  <b><a href=\"https:\/\/github.com\/plv8\/plv8\/releases\/tag\/v3.1.3\">plv 8 3.1.3<\/a><\/b><\/p>\n<p>  \u0410 \u043d\u0430 \u0434\u043d\u044f\u0445 <i> \u0410\u043b\u0435\u043a\u0441\u0435\u0439 \u0424\u0430\u0434\u0435\u0435\u0432<\/i>, \u0441\u0442\u0430\u0440\u0448\u0438\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a .NET \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 sibedge (\u0422\u043e\u043c\u0441\u043a), \u0441\u043e\u043e\u0431\u0449\u0438\u043b, \u0447\u0442\u043e \u043e\u043d\u0438 \u0441\u043e\u0431\u0440\u0430\u043b\u0438 \u0434\u043e\u043a\u0435\u0440-\u043e\u0431\u0440\u0430\u0437\u044b plv8 \u0441 PostgreSQL 15. \u041d\u0435\u0434\u0430\u0432\u043d\u043e \u0443 \u043d\u0438\u0445 \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 arm64 \u2014 \u044d\u0442\u043e \u043b\u043e\u0433\u0438\u0447\u043d\u043e, \u0442\u0430\u043a \u043a\u0430\u043a \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f \u0441\u0442\u0440\u0435\u043c\u0438\u0442\u0441\u044f \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0441\u0430\u043c\u044b\u0435 \u043a\u043e\u043c\u043f\u0430\u043a\u0442\u043d\u044b\u0435 \u043e\u0431\u0440\u0430\u0437\u044b. \u041e\u0431\u0440\u0430\u0437\u044b \u043e\u0442 sibedge \u0441\u043e\u0431\u0440\u0430\u043d\u044b \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 <a href=\"https:\/\/hub.docker.com\/_\/postgres\">\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u043e\u0431\u0440\u0430\u0437\u043e\u0432<\/a> Postgres. \u041a\u0430\u043a \u0438 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435, \u043e\u043d\u0438 \u0441\u043e\u0431\u0440\u0430\u043d\u044b \u043f\u043e\u0434 \u0434\u0432\u0430 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u0430: \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f Debian \u0438 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/Alpine_Linux\">alpine<\/a> (\u0440\u0430\u0437\u043c\u0435\u0440 alpine-\u043e\u0431\u0440\u0430\u0437\u043e\u0432 \u043f\u043e\u0447\u0442\u0438 \u0432\u0434\u0432\u043e\u0435 \u043c\u0435\u043d\u044c\u0448\u0435).<\/p>\n<p>  \u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u0447\u0442\u043e \u043e\u0431\u0440\u0430\u0437\u044b \u0432 \u0434\u0432\u0443\u0445 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f\u0445:<br \/>  sibedge\/postgres-plv8 (\u0441\u0431\u043e\u0440\u043a\u0430 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e) \u0438<br \/>  sibedge\/postgres-plv8-bigint (\u0441\u0431\u043e\u0440\u043a\u0430 \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 BigInt) \u2014 sibedge \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442 \u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044e \u043e\u0431\u0440\u0430\u0437 sibedge\/postgres-plv8-bigint, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u0432\u0435\u0440\u0441\u0438\u0435\u0439 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0432\u0441\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f BigInt \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0432 \u0441\u0442\u0440\u043e\u043a\u0438 (\u044d\u0442\u043e \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043a\u043e\u043b\u043e\u043d\u043e\u043a \u0442\u0438\u043f\u0430 bigint, \u043d\u043e \u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0430\u0433\u0440\u0435\u0433\u0430\u0442\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 count \u0438\u043b\u0438 sum).<\/p>\n<p>  \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438, \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b <a href=\"https:\/\/hub.docker.com\/r\/sibedge\/postgres-plv8\">\u0437\u0434\u0435\u0441\u044c<\/a>. \u0410 <a href=\"https:\/\/sibedge.com\/blog\/sibedge-s-contribution-to-the-development-of-postgres-a-simple-installation-of-plv8-by-alexey-fadeev\/\">\u0437\u0434\u0435\u0441\u044c \u0438\u0441\u0442\u043e\u0440\u0438\u044f \u0432\u043e\u043f\u0440\u043e\u0441\u0430<\/a>.<\/p>\n<p>  \u041e \u0441\u0432\u043e\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u0435 \u0438 \u043e \u0432\u044b\u0431\u043e\u0440\u0435 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439 \u0410\u043b\u0435\u043a\u0441\u0435\u0439 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u043b \u043d\u0430 <a href=\"https:\/\/pgconf.ru\/2022\">PGConf.Russia 2022<\/a>:<br \/>  <b><a href=\"https:\/\/pgconf.ru\/2022\/316603\">\u0421\u0431\u043e\u0440\u043a\u0430 plv8: \u043e\u0442 \u0430\u0440\u0445\u0438\u0432\u0430 \u0441 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u0430\u043c\u0438 \u0434\u043e \u043a\u043e\u043c\u043f\u0430\u043a\u0442\u043d\u043e\u0433\u043e \u0434\u043e\u043a\u0435\u0440-\u043e\u0431\u0440\u0430\u0437\u0430<\/a><\/b>.<\/p>\n<h3>\u041c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u0438 \u0442\u044e\u043d\u0438\u043d\u0433<\/h3>\n<p>  <b><a href=\"https:\/\/github.com\/OPMDG\/check_pgactivity\/releases\/tag\/REL2_6\">check_pgactivity 2.6<\/a><\/b><\/p>\n<p>  check_pgactivity \u2014 PostgreSQL-\u043f\u043b\u0430\u0433\u0438\u043d \u0434\u043b\u044f \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u043f\u043e\u0434 <a href=\"https:\/\/www.nagios.org\/\">Nagios<\/a>. \u041e\u043d \u043f\u0440\u0438\u0437\u0432\u0430\u043d \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 \u043c\u0435\u0442\u0440\u0438\u043a\u0430\u043c\u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438. \u0412 \u043d\u043e\u0432\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438:<\/p>\n<ul>\n<li>\u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c \u0441 PostgreSQL 14;<\/li>\n<li>\u043d\u043e\u0432\u044b\u0439 \u0441\u0435\u0440\u0432\u0438\u0441 <code>session_stats<\/code> \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u0430 \u0441\u0435\u0441\u0441\u0438\u043e\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445;<\/li>\n<li>\u0441\u0435\u0440\u0432\u0438\u0441 <code>autovacuum<\/code> \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0435 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 <code>max_workers<\/code> \u0434\u043b\u044f \u0432\u0435\u0440\u0441\u0438\u0439 8.2 \u0438 \u043d\u0438\u0436\u0435.<\/li>\n<\/ul>\n<p>  <b><a href=\"https:\/\/vettabase.com\/blog\/tuning-linux-kernel-for-postgresql\/\">Tuning Linux kernel for PostgreSQL<\/a><\/b><\/p>\n<p>  <i>\u041c\u0430\u0439\u043a\u043b \u0410\u0431\u043e\u0443\u0434\u0436\u0438<\/i> (Michael Aboagye, Vettabase) <a href=\"https:\/\/github.com\/Vettabase\/ansible-role-linux-for-postgresql\">\u0441\u043e\u0437\u0434\u0430\u043b \u0440\u043e\u043b\u044c<\/a> \u0432 <a href=\"https:\/\/www.ansible.com\/\">Ansible<\/a> \u0434\u043b\u044f \u0442\u043e\u043d\u043a\u043e\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u044f\u0434\u0440\u0430 Linux. \u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u043e\u043d \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u0445:<br \/>  <code>kernel.shmmax<\/code>,<br \/>  <code>kernel.shmall<\/code>,<br \/>  <code>vm.swappiness<\/code>,<br \/>  <code>vm.overcommit_memory<\/code>,<br \/>  <code>vm.overcommit_ratio<\/code>,<br \/>  <code>HugePages<\/code>,<br \/>  <code>vm.dirty_background_ratio<\/code>,<br \/>  <code>vm.dirty_ratio<\/code>.<br \/>  \u041c\u0430\u0440\u043a\u0435\u0442\u0438\u043d\u0433\u043e\u0432\u044b\u0439 \u0441\u043c\u044b\u0441\u043b \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0432 \u043a\u043e\u043d\u0446\u0435 \u0430\u0432\u0442\u043e\u0440 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u043f\u0440\u043e\u0434\u0443\u043a\u0442 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442: <a href=\"https:\/\/vettabase.com\/blog\/services\/health-checks\/postgresql\/\">PostgreSQL Health Check<\/a><\/p>\n<p>  <b><a href=\"https:\/\/www.enterprisedb.com\/blog\/harnessing-shared-buffers-and-reaping-performance-benefits-part-1\">Harnessing Shared Buffers (and Reaping the Performance Benefits) \u2014 Part 1<\/a><\/b><\/p>\n<p>  <i>\u0428\u043e\u043d \u0422\u043e\u043c\u0430\u0441<\/i> (Shaun Thomas, EDB \u2014 \u043e \u0435\u0433\u043e PG-\u041f\u044f\u0442\u043d\u0435\u0446\u0430\u0445 \u0432\u044b\u0448\u0435 \u0432 \u043e\u0431\u0437\u043e\u0440\u0435) \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u0442 \u043d\u0430 \u0431\u0435\u043d\u0447\u043c\u0430\u0440\u043a\u0430\u0445 (\u00ab\u0441\u0442\u0430\u0440\u0430\u044f \u0434\u043e\u0431\u0440\u0430\u044f pgbench\u00bb, <a href=\"https:\/\/www.hammerdb.com\/\">HammerDB<\/a> TPROC-C \u0438 TPROC-H).<\/p>\n<p>  \u0412 \u043f\u0435\u0440\u043e\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u043f\u043e\u043a\u0430 \u0432\u044b\u0432\u043e\u0434\u044b \u0442\u0430\u043a\u0438\u0435: \u0441\u043a\u043b\u0430\u0434\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u043e\u0431\u044a\u0451\u043c\u0430 \u043b\u0443\u0447\u0448\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0441 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u043c\u0438 \u043e\u0431\u044a\u0451\u043c\u0430\u043c\u0438 \u043f\u0430\u043c\u044f\u0442\u0438, \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u0432 Shared Buffers, \u0442\u0430\u043a \u043a\u0430\u043a \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0441\u0442\u0440\u0430\u043d\u0438\u0446 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e 1 \u0440\u0430\u0437. \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c \u0442\u0430\u043a\u0438\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0432 \u0431\u0443\u0444\u0435\u0440\u0435 \u0434\u043e\u0440\u043e\u0436\u0435, \u0447\u0435\u043c \u043e\u0442\u0434\u0430\u0442\u044c \u0438\u0445 \u0432 \u0440\u0430\u0441\u043f\u043e\u0440\u044f\u0436\u0435\u043d\u0438\u0435 \u041e\u0421. \u041f\u0440\u0438 OLTP-\u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0430\u0445 \u043a\u0430\u0440\u0442\u0438\u043d\u0430 \u0441\u043e\u0432\u0441\u0435\u043c \u0434\u0440\u0443\u0433\u0430\u044f.<\/p>\n<p>  \u041d\u043e \u0432 \u043f\u0435\u0440\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0442\u0435\u0441\u0442\u044b \u043a\u0440\u0443\u0442\u0438\u043b\u0438\u0441\u044c \u043d\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u043c \u0441 \u0436\u0451\u0441\u0442\u043a\u0438\u043c\u0438 \u0434\u0438\u0441\u043a\u0430\u043c\u0438. \u0412\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0431\u0443\u0434\u0443\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0441 NVM \u0438 \u0431\u043e\u043b\u044c\u0448\u0438\u043c\u0438 RAM. \u041e\u0431\u0435\u0449\u0430\u043d\u044b \u0441\u044e\u0440\u043f\u0440\u0438\u0437\u044b.<\/p>\n<p>  <b><a href=\"https:\/\/www.pgmustard.com\/blog\/using-postgres-buffers-for-query-optimization\">Using BUFFERS for query optimization<\/a><\/b><\/p>\n<p>  <i>\u041c\u0430\u0439\u043a\u043b \u041a\u0440\u0438\u0441\u0442\u043e\u0444\u0430\u0439\u0434\u0435\u0441<\/i> (Michael Christofides, pgMustard) \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0435\u0442, \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 <i>shared, temp, local, hit, read, dirtied<\/i> \u0438 <i>written<\/i>. \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u043e\u043d \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c pgMustard, \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0438\u0440\u0443\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0441\u0438\u043c\u043f\u0430\u0442\u0438\u0447\u043d\u044b\u043c\u0438 \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u0430\u043c\u0438. \u0418 \u0430\u0433\u0438\u0442\u0438\u0440\u0443\u0435\u0442 \u0437\u0430 \u0438\u0445 <a href=\"https:\/\/commitfest.postgresql.org\/38\/3409\/\">\u043f\u0430\u0442\u0447<\/a>: \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 BUFFERS \u0432 EXPLAIN \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e. \u0421\u043e\u0430\u0432\u0442\u043e\u0440 \u043f\u0430\u0442\u0447\u0430 \u2014 \u0441\u043e\u0432\u0435\u0434\u0443\u0449\u0438\u0439 \u043f\u043e\u0434\u043a\u0430\u0441\u0442\u043e\u0432 <b><a href=\"https:\/\/postgres.fm\/episodes\">Postgres.FM<\/a><\/b> <i>\u041d\u0438\u043a\u043e\u043b\u0430\u0439 \u0421\u0430\u043c\u043e\u0445\u0432\u0430\u043b\u043e\u0432<\/i>, \u0432\u043e\u0442 \u0435\u0433\u043e \u0441\u0442\u0430\u0442\u044c\u044f <b><a href=\"https:\/\/postgres.ai\/blog\/20220106-explain-analyze-needs-buffers-to-improve-the-postgres-query-optimization-process\">EXPLAIN (ANALYZE) needs BUFFERS to improve the Postgres query optimization process<\/a><\/b> \u043d\u0430 \u044d\u0442\u0443 \u0442\u0435\u043c\u0443.<\/p>\n<p>  <b><a href=\"https:\/\/dev.to\/yugabyte\/postgres-memory-allocation-and-os-memory-allocation-30f1\">Postgres memory allocation and OS memory allocation<\/a><\/b><\/p>\n<p>  <i>\u0424\u0440\u0438\u0446 \u0425\u043e\u043e\u0433\u043b\u0430\u043d\u0434<\/i> (Frits Hoogland) \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043b \u0434\u0430\u0436\u0435 \u043d\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u0441\u0442\u0430\u0442\u044c\u044e. \u0421\u043a\u043e\u0440\u0435\u0435, \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435 \u043e\u0431\u0441\u0443\u0434\u0438\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0435 \u0438\u043c \u0441\u0442\u0440\u0430\u043d\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u0438 \u0430\u043b\u043e\u043a\u0430\u0446\u0438\u0438 \u043f\u0430\u043c\u044f\u0442\u0438 \u043f\u043e\u0434 \u0431\u0435\u0437\u044b\u043c\u044f\u043d\u043d\u044b\u0435 \u0431\u043b\u043e\u043a\u0438 PL\/pgSQL. \u0418\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043c\u0438 <b>gdb<\/b> \u0438 \u043b\u0438\u043d\u0443\u043a\u0441\u043e\u0432\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 <b>smem<\/b> \u0434\u0430\u044e\u0442 \u0440\u0430\u0434\u0438\u043a\u0430\u043b\u044c\u043d\u043e \u0440\u0430\u0437\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u0431 \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0435\u043d\u0438\u0438 \u043f\u0430\u043c\u044f\u0442\u0438. \u041d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043d\u0430\u0448\u0435\u0433\u043e \u043e\u0431\u0437\u043e\u0440\u0430 \u043d\u0438\u043a\u0442\u043e \u043d\u0435 \u043e\u0442\u043a\u043b\u0438\u043a\u043d\u0443\u043b\u0441\u044f \u043d\u0430 \u0435\u0433\u043e \u0437\u043e\u0432 \u043e \u043f\u043e\u043c\u043e\u0449\u0438. <\/p>\n<p>  <b><a href=\"https:\/\/awide.io\/postgresql-how-to-detect-and-solve-memory-availability-issues\/\">PostgreSQL \u2013 how to detect and solve memory availability issues<\/a><\/b><\/p>\n<p>  \u0420\u0435\u0447\u044c \u0438\u0434\u0451\u0442 \u043e\u0431 <a href=\"https:\/\/awide.io\/product\/\">Awide<\/a> \u2014 \u0440\u0435\u0448\u0435\u043d\u0438\u0438 \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430, \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c. \u0422\u0430\u043c \u0435\u0441\u0442\u044c \u043e\u043a\u043e\u0448\u043a\u043e, \u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u044e\u0449\u0435\u0435 \u043c\u043e\u043d\u0438\u0442\u043e\u0440 \u0432 Windows, \u043d\u043e \u043a\u0430\u0436\u0434\u0430\u044f \u0441\u0442\u0440\u043e\u0447\u043a\u0430 \u044d\u0442\u043e SQL-\u0437\u0430\u043f\u0440\u043e\u0441. \u0423\u0432\u0438\u0434\u0435\u0432 \u043f\u0440\u043e\u0436\u043e\u0440\u043b\u0438\u0432\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441, \u043c\u043e\u0436\u043d\u043e \u0433\u043b\u044f\u043d\u0443\u0442\u044c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0439. \u0415\u0441\u0442\u044c \u043f\u0440\u043e\u0444\u0430\u0439\u043b\u0435\u0440 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0438\u0441\u0443\u0435\u0442 \u043a\u0440\u0438\u0432\u0443\u044e \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u044f \u043f\u0430\u043c\u044f\u0442\u0438 \u0432\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438.<\/p>\n<p>  \u041f\u0430\u043c\u044f\u0442\u044c \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0439, \u0435\u0441\u043b\u0438 \u0444\u043e\u043d\u043e\u0432\u044b\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 postgres \u043c\u043e\u0436\u0435\u0442 \u0430\u043b\u043e\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0430\u043c\u044f\u0442\u044c \u0431\u0435\u0437 \u0441\u0432\u0430\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u041f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u0435 \u0438 \u043e\u0441\u0442\u0430\u0442\u043e\u043a \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043f\u043e-\u0440\u0430\u0437\u043d\u043e\u043c\u0443 \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c, \u0438 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u0438\u0437 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0432\u0435\u043b\u0438\u0447\u0438\u043d. \u041a\u043e\u0433\u0434\u0430 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u0430\u044f \u043f\u0430\u043c\u044f\u0442\u044c \u043e\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u043d\u0438\u0436\u0435 \u043f\u043e\u0440\u043e\u0433\u043e\u0432\u043e\u0439 \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u044b, \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435. \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u2014 \u0442\u0435\u043b\u044c-\u0430\u0432\u0438\u0432\u0441\u043a\u0430\u044f \u0444\u0438\u0440\u043c\u0430 Awide Labs.<\/p>\n<p>  \u041d\u0435 \u043d\u0430 \u0442\u0443 \u0436\u0435, \u043d\u043e \u043d\u0430 \u0440\u043e\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u0443\u044e \u0442\u0435\u043c\u0443: <a href=\"https:\/\/habr.com\/ru\/company\/postgrespro\/blog\/423685\/\">\u041f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u0438\u0437\u043c \u0432 PostgreSQL: \u043d\u0435 \u0441\u0444\u0435\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0439, \u043d\u0435 \u043a\u043e\u043d\u044c, \u043d\u0435 \u0432 \u0432\u0430\u043a\u0443\u0443\u043c\u0435<\/a> (\u0435\u0451 <a href=\"https:\/\/habr.com\/ru\/company\/postgrespro\/blog\/500442\/\">\u0430\u043d\u0433\u043b\u043e\u044f\u0437\u044b\u0447\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442<\/a>)<\/p>\n<h3>\u0415\u0449\u0451 \u0441\u0442\u0430\u0442\u044c\u0438<\/h3>\n<p>  <b><a href=\"https:\/\/kmoppel.github.io\/2022-09-05-5-years-in-postgresql-major-versions-performance-anything-surprising\/\">5 years in PostgreSQL major versions performance \u2014 anything surprising?<\/a><\/b><\/p>\n<p>  <i>\u041a\u0430\u0430\u0440\u0435\u043b \u041c\u043e\u043f\u043f\u0435\u043b<\/i> (Kaarel Moppel, Cybertec) \u0440\u0435\u0448\u0438\u043b \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c PostgreSQL \u0432\u0435\u0440\u0441\u0438\u0439 10 \u0438 15 \u043d\u0430 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u043c \u043d\u0430\u0431\u043e\u0440\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f <b>pgbench<\/b>. \u0421\u043f\u043e\u0439\u043b\u0435\u0440: 15-\u0439 \u043f\u043e\u0431\u0435\u0434\u0438\u043b \u043f\u043e \u0441\u0443\u043c\u043c\u0435. \u041d\u043e \u043d\u0435 \u0442\u043e, \u0447\u0442\u043e\u0431\u044b \u043e\u0447\u0435\u043d\u044c \u0443\u0431\u0435\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e. \u041a\u0430\u0430\u0440\u0435\u043b \u0434\u0430\u0436\u0435 \u043f\u043e\u0436\u0430\u043b\u0435\u043b, \u0447\u0442\u043e \u0432\u043f\u043e\u043b\u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0433\u043e \u0441\u0442\u0430\u0440\u0438\u043a\u0430 \u0441\u043a\u043e\u0440\u043e \u0432\u044b\u043f\u0440\u043e\u0432\u0430\u0436\u0438\u0432\u0430\u044e\u0442 \u043d\u0430 \u043d\u0435\u0437\u0430\u0441\u043b\u0443\u0436\u0435\u043d\u043d\u0443\u044e <a href=\"https:\/\/itisgood.ru\/2019\/09\/11\/chto-takoe-end-of-life-eol-v-vychislitelnoj-tehnike\/?ysclid=l7uzh71ddb632659464\">EOL<\/a>. \u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u0435\u0441\u0442\u044c \u043e JIT, \u043e (\u043d\u0435)\u043d\u0430\u0434\u0451\u0436\u043d\u043e\u0441\u0442\u0438 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u043e\u0431\u043b\u0430\u0447\u043d\u043e\u0439 \u0441\u0440\u0435\u0434\u0435. \u0412\u044b\u044f\u0432\u043b\u0435\u043d\u044b \u0434\u0432\u0435 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0432\u043f\u0435\u0447\u0430\u0442\u043b\u044f\u044e\u0449\u0438\u0435 \u0430\u043d\u043e\u043c\u0430\u043b\u0438\u0438 \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 PostgrSQL 15 Beta 2.<\/p>\n<p>  <b><a href=\"https:\/\/postgrespro.com\/blog\/pgsql\/5969681\">A New Approach to Sharding for Distributed PostgreSQL<\/a><\/b><\/p>\n<p>  <i>\u0414\u043c\u0438\u0442\u0440\u0438\u0439 \u0423\u0440\u0441\u0435\u0433\u043e\u0432<\/i>, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a Postgres Professional, \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442 \u043f\u043e \u0448\u0430\u0440\u0434\u0438\u043d\u0433\u0443, \u043e\u0431\u043e\u0437\u0440\u0435\u0432\u0430\u0435\u0442 \u043d\u044b\u043d\u0435\u0448\u043d\u0435\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 postgres fdw, \u043d\u0430 \u0431\u0430\u0437\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0438 \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u0448\u0430\u0440\u0434\u0438\u043d\u0433\u043e\u0432\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 Postgres Pro. \u0420\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043e\u0431 \u0443\u0437\u043a\u0438\u0445 \u043c\u0435\u0441\u0442\u0430\u0445 \u043f\u0440\u0438 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0448\u0430\u0440\u0434\u0438\u043d\u0433\u043e\u0432\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432. \u041f\u043e\u0441\u043b\u0435 \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0434\u0435\u043b\u0438\u0442\u0441\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u043c\u0438 TPC-C \u0441\u0432\u043e\u0435\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0438 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u0442 \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0448\u0430\u0440\u0434\u0438\u043d\u0433\u043e\u0432\u044b\u043c\u0438 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438.<\/p>\n<p>  \u041a\u0441\u0442\u0430\u0442\u0438, \u0414\u043c\u0438\u0442\u0440\u0438\u0439 \u043f\u043e\u043c\u043e\u0433 \u0438 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u043c\u0438 \u0441\u0441\u044b\u043b\u043a\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u043e\u0448\u043b\u0438 \u0432 \u044d\u0442\u043e\u0442 \u0432\u044b\u043f\u0443\u0441\u043a \u2014 \u0441\u043f\u0430\u0441\u0438\u0431\u043e. \u0421\u043f\u0430\u0441\u0438\u0431\u043e <i>\u041d\u0438\u043a\u043e\u043b\u0430\u044e \u041f\u043e\u043f\u043e\u0432\u0443<\/i> \u0438 <i>\u041c\u0438\u0445\u0430\u0438\u043b\u0443 \u0416\u0438\u043b\u0438\u043d\u0443<\/i> \u2014 \u0437\u0430 \u0442\u043e \u0436\u0435. <i>\u0415\u0433\u043e\u0440 \u0420\u043e\u0433\u043e\u0432<\/i> \u0438 <i>\u041f\u0430\u0432\u0435\u043b \u041b\u0443\u0437\u0430\u043d\u043e\u0432<\/i> \u043f\u043e\u043c\u043e\u0433\u0430\u044e\u0442 \u0432\u0441\u0435\u0433\u0434\u0430, \u044d\u0442\u043e \u0434\u0430\u0436\u0435 \u043d\u0435 \u0431\u0443\u0434\u0443 \u0434\u0430\u043b\u044c\u0448\u0435 \u043e\u0433\u043e\u0432\u0430\u0440\u0438\u0432\u0430\u0442\u044c.<\/p>\n<p>  <b><a href=\"https:\/\/hakibenita.com\/future-proof-sql\">Future Proofing SQL with Carefully Placed Errors<\/a><\/b><\/p>\n<p>  \u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430\u044f \u0442\u0435\u043c\u0430. \u041f\u0440\u044f\u043c\u0430\u044f \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c \u043a\u043e\u0434\u0430 SQL. \u0415\u0451 \u0432 \u043d\u0430\u0448\u0435\u0439 \u043b\u0438\u0442\u0435\u0440\u0430\u0442\u0443\u0440\u0435 \u0435\u0449\u0451 \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442 <b>\u0432\u043e\u0441\u0445\u043e\u0434\u044f\u0449\u0435\u0439<\/b>. \u0421 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439 \u043f\u0440\u043e\u0449\u0435: \u043a\u043e\u0434 \u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043d, \u0434\u0430\u043d\u043d\u044b\u0435 \u0438 API \u0442\u043e\u0436\u0435. \u0410 \u0432\u043e\u0442 \u043f\u0440\u0435\u0434\u0432\u0438\u0434\u0435\u0442\u044c \u0431\u0443\u0434\u0443\u0449\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438 API, \u043a\u043e\u0442\u043e\u0440\u044b\u0435, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c \u2014 \u044d\u0442\u043e \u043d\u0430\u043c\u043d\u043e\u0433\u043e \u0441\u043b\u043e\u0436\u043d\u0435\u0439.<\/p>\n<p>  \u0410\u0432\u0442\u043e\u0440, <i>\u0425\u0430\u043a\u0438 \u0411\u0435\u043d\u0438\u0442\u0430<\/i> (Haki Benita), \u0445\u043e\u0440\u043e\u0448\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 \u0432 Postgres-\u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0435, \u0441\u0447\u0438\u0442\u0430\u0435\u0442, \u0447\u0442\u043e \u0441 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043e\u0439 \u043f\u0440\u044f\u043c\u043e\u0439 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u0438, \u0432 \u043e\u0431\u0449\u0435\u043c, \u0441\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f, \u043d\u043e \u0432\u043e\u0442 \u0432 \u043c\u0438\u0440\u0435 SQL \u0441 \u044d\u0442\u0438\u043c \u043f\u043b\u043e\u0445\u043e. \u0421\u0442\u0430\u0442\u044c\u044f \u0435\u0433\u043e \u043d\u0435 \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f: \u043e\u043d \u0441\u0440\u0430\u0437\u0443 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u0441\u043e \u0441\u0432\u043e\u0435\u0433\u043e \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430: \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043f\u043b\u0430\u0442\u0435\u0436\u0435\u0439. \u041e\u043d \u0434\u0435\u043b\u0430\u0435\u0442 \u043e\u0448\u0438\u0431\u043a\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u043e\u0441\u043a\u0430\u043a\u0438\u0432\u0430\u0435\u0442 \u043d\u0435\u0437\u0430\u043c\u0435\u0447\u0435\u043d\u043d\u043e\u0439. \u042d\u0442\u043e \u043d\u0435 \u0434\u0435\u043b\u043e. \u0427\u0442\u043e\u0431\u044b \u0442\u0430\u043a\u043e\u0433\u043e \u043d\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u043b\u043e \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043c, \u043e\u043d \u043f\u0438\u0448\u0435\u0442 \u043f\u0440\u043e\u0441\u0442\u0435\u043d\u044c\u043a\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0441 RAISE EXCEPTION.<\/p>\n<p>  \u0414\u043b\u044f \u044d\u0442\u043e\u0439 \u0436\u0435 \u0446\u0435\u043b\u0438 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u044f\u0432\u0438\u0432\u0448\u0443\u044e\u0441\u044f \u043d\u0435\u0434\u0430\u0432\u043d\u043e Python-\u0444\u0443\u043d\u043a\u0446\u0438\u044e <a href=\"https:\/\/docs.python.org\/3.11\/library\/typing.html#typing.assert_never\">assert_never<\/a>. \u041d\u043e \u0435\u0441\u0442\u044c \u0437\u0430\u0431\u0430\u0432\u043d\u044b\u0439 \u0445\u0430\u043a, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u0432\u043e\u043e\u0431\u0449\u0435 \u043e\u0431\u043e\u0439\u0442\u0438\u0441\u044c \u0431\u0435\u0437 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u0432\u044b\u0437\u044b\u0432\u0430\u044e\u0449\u0435\u0439 \u043e\u0448\u0438\u0431\u043a\u0443. \u041c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c ELSE 1\/0 \u0432 \u0431\u043b\u043e\u043a\u0435 CASE. \u0415\u0449\u0451 \u043e\u0434\u0438\u043d \u0445\u0430\u043a \u2014 ELSE \u0441 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0435\u043c \u0442\u0438\u043f\u0430.<\/p>\n<p>  <b><a href=\"https:\/\/habr.com\/ru\/post\/650007\/\">\u0423\u0441\u043a\u043e\u0440\u044f\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 \u0433\u0440\u0430\u0444\u0430\u043c\u0438 \u0432 20000 \u0440\u0430\u0437<\/a><\/b><\/p>\n<p>  \u0410\u0432\u0442\u043e\u0440, <i>\u041d\u0438\u043a\u0438\u0442\u0430 \u041b\u044f\u043f\u0438\u043d<\/i> \u0430\u043a\u0430 <a href=\"https:\/\/habr.com\/ru\/users\/spinifex\/\" class=\"user_link\">Spinifex<\/a> \u0445\u0440\u0430\u043d\u0438\u0442 \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0433\u0440\u0430\u0444\u044b (65536 \u0443\u0437\u043b\u043e\u0432 \u0438 \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043d\u0438\u0445 \u0441\u0432\u044f\u0437\u0430\u043d \u0441 \u043a\u0430\u0436\u0434\u044b\u043c, 4294967296 \u0441\u0432\u044f\u0437\u0435\u0439) \u0432 PostgreSQL \u0438 \u043e\u0431\u0445\u043e\u0434\u0438\u0442 \u0438\u0445 \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u044b\u043c\u0438 SQL-\u0437\u0430\u043f\u0440\u043e\u0441\u0430\u043c\u0438. \u041e\u043d \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0441\u0436\u0430\u0442\u0438\u044f \u0433\u0440\u0430\u0444\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043c\u043e\u0436\u0435\u0442 \u0434\u0430\u0432\u0430\u0442\u044c \u0442\u0430\u043a\u043e\u0439 \u0432\u044b\u0438\u0433\u0440\u044b\u0448. \u041f\u043e\u0442\u043e\u043c \u043e\u043d \u0442\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u0442 \u0438 \u043d\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u0433\u0440\u0430\u0444\u043e\u0432\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u044d\u0442\u043e \u0442\u043e\u0436\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u0445\u043e\u0442\u044f \u0438 \u043d\u0435 \u0442\u0430\u043a \u044d\u0444\u0444\u0435\u043a\u0442\u043d\u043e. \u0421\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0433\u0440\u0430\u0444\u043e\u0432\u044b\u0435 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u044f\u0437\u044b\u043a\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u044e\u0442\u0441\u044f, \u043d\u043e \u043d\u0435 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0438 \u043d\u0435 \u0442\u0435\u0441\u0442\u0438\u0440\u0443\u044e\u0442\u0441\u044f. \u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435 \u043e\u0431\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u044f \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445.<\/p>\n<p>  <b><a href=\"https:\/\/habr.com\/ru\/post\/560834\/\">\u041a\u0430\u043a \u0440\u0435\u043b\u044f\u0446\u0438\u043e\u043d\u043d\u0430\u044f \u0421\u0423\u0411\u0414 \u0434\u0435\u043b\u0430\u0435\u0442 JOIN?<\/a><\/b><\/p>\n<p>  \u0422\u043e\u0442 \u0436\u0435 \u0430\u0432\u0442\u043e\u0440. \u0422\u0435\u043f\u0435\u0440\u044c \u043e\u043d \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442 JOIN \u043d\u0430 C#, \u043d\u0430 SQL, \u0442\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u0442 \u043d\u0430 PostgrSQL \u0438 \u0441\u0442\u0440\u043e\u0438\u0442 \u0433\u0440\u0430\u0444\u0438\u043a\u0438.<\/p>\n<p>  <i>\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043d\u0430 C# \u0438\u043b\u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u041e\u041e\u041f \u044f\u0437\u044b\u043a\u0430\u0445 \u0447\u0430\u0441\u0442\u043e \u0432\u043e\u0441\u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\u0442 \u0421\u0423\u0411\u0414 \u043a\u0430\u043a \u0432\u0441\u0435\u0433\u043e \u043b\u0438\u0448\u044c \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435<\/i>, \u2014 \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043e\u043d, \u2014 <i>\u043e\u043d\u0438 \u0441\u0447\u0438\u0442\u0430\u044e\u0442, \u0447\u0442\u043e \u0431\u0438\u0437\u043d\u0435\u0441-\u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0432 SQL \u2014 \u044d\u0442\u043e \u043f\u043b\u043e\u0445\u043e. \u0412 \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u0432\u0435\u0441 \u0438\u043c \u0441\u043e\u0437\u0434\u0430\u044e\u0442\u0441\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0432\u0440\u043e\u0434\u0435 <a href=\"https:\/\/github.com\/linq2db\/linq2db\">Linq2Db<\/a>: \u0432\u0435\u0441\u044c \u043a\u043e\u0434 \u043f\u0438\u0448\u0435\u0442\u0441\u044f \u043d\u0430 C#, \u043d\u043e \u0437\u0430\u0442\u0435\u043c \u044d\u0442\u043e\u0442 <b>\u043a\u043e\u0434 \u0442\u0440\u0430\u043d\u0441\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0430 SQL<\/b> \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u0421\u0423\u0411\u0414.<\/i><\/p>\n<p>  \u041d\u0430 C# \u0432 \u044f\u0432\u043d\u043e\u043c \u0432\u0438\u0434\u0435, \u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u041d\u0438\u043a\u0438\u0442\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442 <b>Nested Loop, Merge Join<\/b> \u0438 <b>Hash Join<\/b>. \u0413\u0440\u0430\u0444\u0438\u043a\u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u0438\u0447\u0443\u0434\u043b\u0438\u0432\u043e \u043f\u0435\u0440\u0435\u043f\u043b\u0435\u0442\u0430\u044e\u0442\u0441\u044f. \u0417\u0430\u0442\u0435\u043c, \u043e\u043d \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u043a \u0438\u0434\u0435\u043e\u043b\u043e\u0433\u0438\u0438 \u0421\u0423\u0411\u0414 (\u043c\u0435\u0436\u0434\u0443 \u043f\u0440\u043e\u0447\u0438\u043c, \u0441\u0441\u044b\u043b\u0430\u044f\u0441\u044c \u043a\u0430\u043a \u043d\u0430 \u0430\u0432\u0442\u043e\u0440\u0438\u0442\u0435\u0442 \u043d\u0430 \u043a\u043d\u0438\u0433\u0443 <i>\u0425\u0438\u0440\u043e\u043d\u043e\u0431\u0443 \u0421\u0443\u0437\u0443\u043a\u0438<\/i>, \u043e \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043c\u044b \u0433\u043e\u0432\u043e\u0440\u0438\u043b\u0438 \u0432\u044b\u0448\u0435) \u0438 PostgreSQL \u0432 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438. \u0418 \u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u0421\u0423\u0411\u0414 \u043e\u0431\u0433\u043e\u043d\u044f\u0435\u0442 C#.<\/p>\n<p>  <i>\u0414\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0421\u0423\u0411\u0414 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c, \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435. \u0412 C# \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u0438\u043b\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439 \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435\u0442<\/i>.<\/p>\n<p>  \u0418 \u043d\u0435 \u043d\u0430\u0434\u043e \u2014 \u0430\u0432\u0442\u043e\u0440 \u043e\u0442\u0434\u0430\u0451\u0442 \u0441\u0435\u0431\u0435 \u043e\u0442\u0447\u0451\u0442, \u0447\u0442\u043e \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0441\u0432\u043e\u0451. \u0417\u0430\u043e\u0434\u043d\u043e \u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u043c \u043e\u0431 \u0443\u0432\u043b\u0435\u043a\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043a\u043e\u043b\u043b\u0435\u0433\u0438 <i>\u041f\u0430\u0432\u043b\u0430 \u0422\u043e\u043b\u043c\u0430\u0447\u0451\u0432\u0430<\/i> \u043e \u043f\u0440\u0438\u0447\u0443\u0434\u043b\u0438\u0432\u043e\u043c \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0438 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430: <b><a href=\"https:\/\/habr.com\/ru\/users\/ptolmachev\/posts\/\">\u041a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0442\u043e\u0440 PostgreSQL \u043f\u0440\u0438 \u0431\u043e\u043b\u044c\u0448\u043e\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0435 \u0442\u0430\u0431\u043b\u0438\u0446 \u0432 \u0437\u0430\u043f\u0440\u043e\u0441\u0435<\/a><\/b><\/p>\n<p>  <b><a href=\"https:\/\/habr.com\/ru\/company\/southbridge\/blog\/684826\/\">\u041a\u0430\u043a \u0443\u0441\u043a\u043e\u0440\u0438\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443 PostgreSQL \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0431\u0430\u0437\u044b \u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432<\/a><\/b><\/p>\n<p>  \u0410\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440 \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 Southbridge \u0438 \u0432\u0435\u0434\u0443\u0449\u0438\u0439 \u0438\u043d\u0436\u0435\u043d\u0435\u0440 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Data Driven Lab <i>\u0418\u0432\u0430\u043d \u0427\u0443\u0432\u0430\u0448\u043e\u0432<\/i>. \u042d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u2014 \u043a\u043e\u043d\u0441\u043f\u0435\u043a\u0442 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e\u0433\u043e \u0432\u0435\u0431\u0438\u043d\u0430\u0440\u0430 \u043e\u0431 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 PostgreSQL \u043e\u0442 \u00ab\u0421\u043b\u0451\u0440\u043c\u0430\u00bb. \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0442\u0435\u0437\u0438\u0441\u044b \u0441\u0442\u0430\u0442\u044c\u0438 \u0432\u044b\u0437\u0432\u0430\u043b\u0438 \u043f\u043e\u043b\u0435\u043c\u0438\u043a\u0443 \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445.<\/p>\n<p>  <b><a href=\"https:\/\/www.percona.com\/blog\/postgresql-15-stats-collector-gone-whats-new\/\">Where Did the Stats Collector Go in Postgres 15?<\/a><\/b><\/p>\n<p>  PostgreSQL \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0435\u0442 \u0434\u0435\u044f\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430, \u0447\u0442\u043e\u0431\u044b \u0434\u0430\u043b\u044c\u0448\u0435 \u0430\u0433\u0440\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0443: \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437 \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043b\u0430\u0441\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0438\u043b\u0438 \u0438\u043d\u0434\u0435\u043a\u0441; \u043a\u043e\u0433\u0434\u0430 \u0431\u044b\u043b \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 (\u0430\u0432\u0442\u043e)VACUUM, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437 \u043e\u043d \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u043b\u0441\u044f \u043f\u043e \u0442\u0430\u0431\u043b\u0438\u0446\u0435. \u0412\u0441\u044e \u044d\u0442\u0443 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f <code>pg_stat_*<\/code>.<\/p>\n<p>  <i>\u0414\u0436\u043e\u0431\u0438\u043d \u0410\u0443\u0433\u0443\u0441\u0442\u0438\u043d<\/i> (Jobin Augustine, Percona) \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0435\u0442, \u043a\u0430\u043a\u0438\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0431\u044b\u043b\u0438 \u0432 \u0432\u0435\u0440\u0441\u0438\u044f\u0445 \u0434\u043e PostgreSQL 15 \u0441\u043e <a href=\"https:\/\/postgrespro.ru\/docs\/postgresql\/14\/monitoring-stats?lang=ru\">stats collector<\/a>. \u0412 \u043b\u044e\u0431\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u043e\u0442 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u043e\u0447\u0435\u043d\u044c \u043f\u043b\u043e\u0445\u043e \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043b\u0441\u044f. \u0422\u0435\u043f\u0435\u0440\u044c \u044d\u0442\u0438\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u043d\u0435\u0442, \u0442\u0430\u043a \u043a\u0430\u043a \u0438 \u0441\u0430\u043c\u043e\u0433\u043e \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u0435\u043b\u044f \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438 \u043d\u0435\u0442. \u041d\u0435 \u043d\u0430\u0434\u043e \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b, \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u043b\u0435\u0436\u0438\u0442 \u0432 \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u043c\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438.<\/p>\n<p>  \u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 <code>stats_temp_directory<\/code> \u0438\u0441\u0447\u0435\u0437. \u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f <code>pg_stat_tmp<\/code> \u0442\u043e\u0436\u0435 \u043d\u0435 \u043d\u0443\u0436\u043d\u0430, \u043d\u043e \u0435\u0451 \u043e\u0441\u0442\u0430\u0432\u0438\u043b\u0438, \u0447\u0442\u043e\u0431\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u0432\u0440\u043e\u0434\u0435 <a href=\"https:\/\/postgrespro.ru\/docs\/postgresql\/14\/pgstatstatements?lang=ru\">pg_stat_statements<\/a>.<\/p>\n<h2>\u0415\u0449\u0451 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0435\u043b\u0438\u0437\u044b<\/h2>\n<p>  <b><a href=\"https:\/\/github.com\/FerretDB\/FerretDB\/releases\/tag\/v0.5.4\">FerretDB 0.5.4<\/a><\/b><\/p>\n<p>  <a href=\"https:\/\/github.com\/FerretDB\/FerretDB\">FerretDB<\/a> (\u0431\u044b\u0432\u0448\u0430\u044f MangoDB \u2014 \u0447\u0435\u0440\u0435\u0437 <i>a<\/i>!) \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u043b\u0430\u0441\u044c \u043a\u0430\u043a \u0434\u0435-\u0444\u0430\u043a\u0442\u043e \u043e\u043f\u0435\u043d\u0441\u043e\u0440\u0441\u043d\u0430\u044f \u0437\u0430\u043c\u0435\u043d\u0430 MongoDB. \u042d\u0442\u043e \u043f\u0440\u043e\u043a\u0441\u0438, \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u044e\u0449\u0430\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 MongoDB 5.0+ \u0432 SQL, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f PostgreSQL \u043a\u0430\u043a \u0434\u0432\u0438\u0436\u043e\u043a \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445. \u0422\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440 \u2014 <i>\u0410\u043b\u0435\u043a\u0441\u0435\u0439 \u041f\u0430\u043b\u0430\u0436\u0447\u0435\u043d\u043a\u043e<\/i>, \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0442\u043e\u0440 <a href=\"https:\/\/golangconf.ru\/2022\">Golang Moscow<\/a>. \u0421\u0430\u043c\u0430\u044f \u0441\u0432\u0435\u0436\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u2014 0.5.4. \u0422\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0434\u0435\u0442\u0430\u043b\u0438 <a href=\"https:\/\/github.com\/FerretDB\/FerretDB\">\u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435<\/a>.<\/p>\n<p>  <b><a href=\"https:\/\/github.com\/wal-g\/wal-g\/releases\/tag\/v2.0.1\">WAL-G 2.0.1<\/a><\/b><\/p>\n<p>  \u041d\u043e\u0432\u043e\u0435 \u043f\u043e \u0432\u0441\u0435\u043c \u0421\u0423\u0411\u0414: \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 arm(aarch64) \u0441\u0431\u043e\u0440\u043a\u0438 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u043f\u043e\u0434 Ubuntu 20.04.<br \/>  PostgreSQL: \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 PostgreSQL 15.<\/p>\n<h2>Postgres-\u0437\u0432\u0435\u0440\u0443\u0448\u043a\u0438<\/h2>\n<p>  <a href=\"https:\/\/postgresql.pet\/\">\u0417\u0434\u0435\u0441\u044c<\/a> \u0441\u043e\u0431\u0440\u0430\u043b\u0430\u0441\u044c \u0443\u0436\u0435 \u0446\u0435\u043b\u0430\u044f \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f \u0431\u0438\u043e\u0433\u0440\u0430\u0444\u0438\u0439 \u0437\u0432\u0435\u0440\u0443\u0448\u0435\u043a, \u043f\u043e\u043c\u043e\u0433\u0430\u0432\u0448\u0438\u0445 \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c Postgres. \u041d\u0435\u0434\u0430\u0432\u043d\u0438\u0435:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/lw\/ru\/lt\/lwrultpnl_5fv2h5736edw_kstc.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/lw\/ru\/lt\/lwrultpnl_5fv2h5736edw_kstc.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <b><a href=\"https:\/\/postgresql.pet\/post\/holly_the_hen\/\">\u0425\u043e\u043b\u043b\u0438 (\u043a\u0443\u0440\u0438\u0446\u0430)<\/a><\/b><br \/>  <b><a href=\"https:\/\/postgresql.pet\/post\/emba\/\">\u042d\u043c\u0431\u0430 (\u043f\u0451\u0441)<\/a><\/b><br \/>  <b><a href=\"https:\/\/postgresql.pet\/post\/milo\/\">Milo (\u043a\u043e\u0442\u0438\u043a)<\/a><\/b><\/p>\n<p>  \u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0430\u0438\u0431\u043e\u043b\u044c\u0448\u0438\u0439 \u0432\u043a\u043b\u0430\u0434 \u0432 Postgres \u0432\u043d\u0435\u0441\u043b\u0438 \u0441\u043e\u0431\u0430\u043a\u0438.<\/p>\n<h2>\u041a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438 \u2014 \u0432\u0437\u0440\u043e\u0441\u043b\u044b\u0435 \u0438 \u0434\u0435\u0442\u0441\u043a\u0438\u0435<\/h2>\n<p>  <b><a href=\"https:\/\/highload.ru\/spb\/2022\">Saint Highload++<\/a><\/b><\/p>\n<p>  \u041f\u0440\u043e\u0448\u0451\u043b 22-23 \u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044f \u0432 \u0421\u041f\u0431. <br \/>  \u0422\u0430\u043c \u0431\u044b\u043b\u0438 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043d\u0435\u043e\u0436\u0438\u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043e\u043a\u043b\u0430\u0434\u044b. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <a href=\"https:\/\/highload.ru\/spb\/2022\/abstracts\/9375\">\u041c\u043e\u0433\u0443\u0442 \u043b\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u043e\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0435\u0439 \u0434\u0430\u0442\u0430-\u0446\u0435\u043d\u0442\u0440\u0430?<\/a> <i>\u0410\u043d\u0442\u043e\u043d \u041a\u0430\u0442\u0435\u043d\u0435\u0432<\/i> \u0438 <i>\u041f\u0430\u0432\u0435\u043b \u041b\u0430\u0432\u0440\u0435\u043d\u043a\u043e<\/i> \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u0435\u043b\u0438 \u0420\u0421\u041a \u2014 \u0441\u0443\u043f\u0435\u0440\u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u043e\u0439 \u0444\u0438\u0440\u043c\u044b. \u041e\u043d\u0438 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u043b\u0438 \u043e\u0431 \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0435\u0439 \u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u043e\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0435\u0439, \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u0438\u0441\u0442\u0435\u043c \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u00ab\u043f\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0443\u00bb, \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0438 \u0437\u0430\u0434\u0430\u0447\u0430\u043c\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438. \u041f\u0440\u0438\u043c\u0435\u043d\u0438\u043b\u0438 \u0435\u0451 \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u0411\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u0410\u0434\u0440\u043e\u043d\u043d\u043e\u0433\u043e \u041a\u043e\u043b\u043b\u0430\u0439\u0434\u0435\u0440\u0430 (LHC) \u0432 \u041e\u0431\u044a\u0435\u0434\u0438\u043d\u0451\u043d\u043d\u044b\u0439 \u0418\u043d\u0441\u0442\u0438\u0442\u0443\u0442 \u042f\u0434\u0435\u0440\u043d\u044b\u0445 \u0418\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0439 \u0432 \u0433. \u0414\u0443\u0431\u043d\u0430.<\/p>\n<p>  \u041e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0432 \u0434\u0440\u0443\u0433\u043e\u043c \u0437\u0430\u043b\u0435 <i>\u041e\u043b\u0435\u0433 \u0411\u0430\u0440\u0442\u0443\u043d\u043e\u0432<\/i> \u0438 <i>\u0418\u0432\u0430\u043d \u041f\u0430\u043d\u0447\u0435\u043d\u043a\u043e<\/i> (\u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e Postgres Professional) \u0447\u0438\u0442\u0430\u043b\u0438 \u0434\u043e\u043a\u043b\u0430\u0434 \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435\u043e\u0436\u0438\u0434\u0430\u043d\u043d\u044b\u0439: <a href=\"https:\/\/highload.ru\/spb\/2022\/abstracts\/9415\">Postgres \u043e\u0442 \u043d\u0430\u0447\u0430\u043b\u0430 \u0432\u0435\u043a\u043e\u0432 \u0438 \u0434\u043e \u043d\u0430\u0448\u0438\u0445 \u0434\u043d\u0435\u0439<\/a>. \u041e\u0442 \u043d\u0430\u0447\u0430\u043b\u0430 \u0432\u0435\u043a\u043e\u0432 \u2014 \u043d\u0435 \u043c\u0435\u0442\u0430\u0444\u043e\u0440\u0430. \u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0440\u0435\u0447\u044c \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u0448\u043b\u0430 \u043e <i>\u0441\u0430\u043c\u044b\u0445 \u0434\u0430\u043b\u044c\u043d\u0438\u0445 \u043f\u0440\u0435\u0434\u043f\u043e\u0441\u044b\u043b\u043a\u0430\u0445: \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u043b\u0435\u0434\u0438\u0442\u044c, \u043a\u0430\u043a \u0447\u0435\u043b\u043e\u0432\u0435\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u043e\u0448\u043b\u043e \u0434\u043e \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0438 \u0421\u0423\u0411\u0414 \u0432\u043e\u043e\u0431\u0449\u0435 \u0438 \u041f\u043e\u0441\u0442\u0433\u0440\u0435\u0441\u0430 \u0432 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, \u043a\u0430\u043a \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u043b\u0441\u044f \u0438 \u043a\u0430\u043a\u0438\u043c\u0438 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044f\u043c\u0438 \u043f\u0438\u0442\u0430\u043b\u0441\u044f \u041f\u043e\u0441\u0442\u0433\u0440\u0435\u0441<\/i>.<\/p>\n<p>  \u0412 <a href=\"https:\/\/highload.ru\/spb\/2022\/abstracts\">\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435<\/a> \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438 \u0431\u044b\u043b\u0438 \u0434\u0430\u0436\u0435 Fail-\u0441\u0435\u043a\u0446\u0438\u044f \u0438 Fail-\u043c\u0438\u0442\u0430\u043f.<\/p>\n<p>  <b><a href=\"https:\/\/smartdataconf.ru\/\">SmartData 2022<\/a><\/b><\/p>\n<p>  \u0424\u043e\u043a\u0443\u0441, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u043d\u0430 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445. \u041d\u043e \u0438 \u043d\u0430 \u043d\u0435\u0439 \u0435\u0441\u0442\u044c \u0434\u043e\u043a\u043b\u0430\u0434\u044b, \u0438\u043c\u0435\u044e\u0449\u0438\u0435 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044f \u043a Postgres. \u041f\u0440\u043e\u0448\u043b\u0430 \u043e\u043d\u043b\u0430\u0439\u043d 17-18 \u043e\u043a\u0442\u044f\u0431\u0440\u044f \u0438 \u0434\u043e\u043b\u0436\u043d\u0430 \u043f\u0440\u043e\u0439\u0442\u0438 \u0432 \u0421\u041f\u0431 (\u0442\u043e\u0436\u0435 \u0441 \u043e\u043d\u043b\u0430\u0439\u043d\u043e\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u044c\u044e) 29-\u0433\u043e \u043e\u043a\u0442\u044f\u0431\u0440\u044f.<\/p>\n<p>  \u041c\u043e\u0436\u043d\u043e \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0442\u0430\u043a\u0438\u0435 \u0434\u043e\u043a\u043b\u0430\u0434\u044b:<br \/>  <a href=\"https:\/\/smartdataconf.ru\/schedule\/video?v=MTAwMTQwwooyMDAwMTE0MsKKMA\">\u041e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u043e\u0442\u043e\u043a\u043e\u0432\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f Big Data<\/a> [\u0441 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435\u043c PostgreSQL] <i>\u0415\u0432\u0433\u0435\u043d\u0438\u0439 \u041d\u0435\u043d\u0430\u0445\u043e\u0432<\/i>, \u041c\u0422C Digital;<br \/>  <a href=\"https:\/\/smartdataconf.ru\/schedule\/video?v=MTAwMTQwwooyMDAwMTE1MMKKMA\">\u0418\u043d\u0442\u0435\u0440\u0432\u044c\u044e \u0441 \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440\u043e\u043c \u0415\u0440\u043c\u0430\u043a\u043e\u0432\u044b\u043c<\/a> [Arenadata];<br \/>  <a href=\"https:\/\/smartdataconf.ru\/schedule\/video?v=MTAwMTQwwooyMDAwMDU5MMKKMA\">Data Vault \u043d\u0430 Greenplum c \u043f\u043e\u043c\u043e\u0449\u044c\u044e DBT<\/a> <i>\u041c\u0430\u0440\u043a \u041f\u043e\u0440\u043e\u0448\u0438\u043d<\/i>, Smart Prediction Technologies.<br \/>  \u041a\u0441\u0442\u0430\u0442\u0438, \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0432 \u043f\u043b\u0430\u043d\u0430\u0445 \u043e\u0431\u0437\u043e\u0440 \u043f\u043e DBT \u2014 \u043d\u0430\u0448\u0438 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0442\u0441\u044f.<\/p>\n<p>  <b><a href=\"https:\/\/www.postgresql.eu\/events\/pgconfeu2022\/news\/pgconfeu-2022-daycare-for-children-at-postgresql-conference-europe-62\/\">Daycare for Children at PostgreSQL Conference Europe<\/a><\/b><\/p>\n<p>  \u041d\u0430 <a href=\"https:\/\/2022.pgconf.eu\/\">\u044d\u0442\u043e\u0439 \u0432\u0441\u0435\u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u043e\u0439 Postgres-\u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438<\/a>, \u0447\u0442\u043e \u043f\u0440\u043e\u0439\u0434\u0451\u0442 \u0432 \u0411\u0435\u0440\u043b\u0438\u043d\u0435 25\u201328 \u043e\u043a\u0442\u044f\u0431\u0440\u044f, \u0431\u0443\u0434\u0435\u0442 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0434\u043b\u044f \u0434\u0435\u0442\u0435\u0439. \u0420\u043e\u0434\u0438\u0442\u0435\u043b\u0438, \u043f\u0440\u0438\u0448\u0435\u0434\u0448\u0438\u0435 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u0438\u043b\u0438 \u0441\u043b\u0443\u0448\u0430\u0442\u044c, \u0441\u043c\u043e\u0433\u0443\u0442 \u0434\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0441\u0432\u043e\u0438\u0445 \u0434\u0435\u0442\u043e\u043a \u043e\u0442 3 \u0434\u043e 15 \u043b\u0435\u0442 \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0439 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438, \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u044e\u0449\u0435\u0439\u0441\u044f \u043d\u0430 \u043f\u0440\u0438\u0441\u043c\u043e\u0442\u0440\u0435 \u0437\u0430 \u0434\u0435\u0442\u044c\u043c\u0438 \u2014 M\u00e4rchenkinder (\u0431\u0443\u043a\u0432\u0430\u043b\u044c\u043d\u043e: \u0421\u043a\u0430\u0437\u043e\u0447\u043d\u044b\u0435 \u0414\u0435\u0442\u0438). \u0421\u0440\u0435\u0434\u0438 \u0440\u0430\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u0439 \u0447\u0438\u0441\u043b\u0438\u0442\u0441\u044f, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0440\u0430\u0441\u043a\u0440\u0430\u0448\u0438\u0432\u0430\u043d\u0438\u0435 \u043b\u0438\u0446 \u0438 \u043d\u043e\u0433\u0442\u0435\u0439.<\/p>\n<hr\/>\n<p>  <i>\u041d\u0430 \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u0432\u0441\u0451.<\/i><\/div>\n<\/div>\n<\/div>\n<div class=\"v-portal\" style=\"display:none;\"><\/div>\n<\/div>\n<p> <!----> <!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/company\/postgrespro\/blog\/683810\/\"> https:\/\/habr.com\/ru\/company\/postgrespro\/blog\/683810\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/g7\/6p\/py\/g76ppybr_zhao9-adgb6fjm_tsu.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/g7\/6p\/py\/g76ppybr_zhao9-adgb6fjm_tsu.jpeg\" data-blurred=\"true\"\/><br \/>  <i>\u041f\u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043f\u0440\u0438\u0447\u0438\u043d\u0430\u043c \u044d\u0442\u043e\u0442 \u043d\u043e\u043c\u0435\u0440 \u0441\u0434\u0432\u043e\u0435\u043d\u043d\u044b\u0439, \u0434\u0430\u043b\u044c\u0448\u0435 Postgresso \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442 \u0432\u044b\u0445\u043e\u0434\u0438\u0442\u044c \u0432 \u043e\u0431\u044b\u0447\u043d\u043e\u043c, \u0435\u0436\u0435\u043c\u0435\u0441\u044f\u0447\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435.<\/i>  <\/p>\n<hr\/>\n<h3>\u0420\u0435\u043b\u0438\u0437\u044b Postgres<\/h3>\n<p>  <\/p>\n<h4>PostgreSQL 15 \u2014 Beta 3-4, RC 1-2 \u0438, \u0442\u0435\u043f\u0435\u0440\u044c GA<\/h4>\n<p>  \u0421\u0432\u0435\u0440\u0448\u0438\u043b\u043e\u0441\u044c! \u0413\u043b\u0430\u0432\u043d\u043e\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u2014 \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u044d\u0442\u043e \u0432\u044b\u0445\u043e\u0434 \u0443\u0436\u0435 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439, \u043e\u0431\u0449\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0439 (general availability) 15-\u0439 \u0432\u0435\u0440\u0441\u0438\u0438:<\/p>\n<p>  <b><a href=\"https:\/\/www.postgresql.org\/about\/news\/postgresql-15-released-2526\/\">PostgreSQL 15 Released!<\/a><\/b><\/p>\n<p>  \u0421\u0440\u0435\u0434\u0438 \u0433\u043b\u0430\u0432\u043d\u044b\u0445 \u043d\u043e\u0432\u0448\u0435\u0441\u0442\u0432 \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442:<\/p>\n<ul>\n<li>\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 SQL-\u043a\u043e\u043c\u0430\u043d\u0434\u044b <a href=\"https:\/\/www.postgresql.org\/docs\/15\/sql-merge.html\">MERGE<\/a>;<\/li>\n<li>\u0438\u0437\u0431\u0438\u0440\u0430\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044f \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u044f \u0442\u0430\u0431\u043b\u0438\u0446 \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u044f \u0432 \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0445;<\/li>\n<li>\u0431\u043e\u043b\u044c\u0448\u0435 \u043e\u043f\u0446\u0438\u0439 \u043f\u0440\u0438 \u0441\u0436\u0430\u0442\u0438\u0438, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0441\u0436\u0430\u0442\u0438\u0435 Zstandard (<a href=\"https:\/\/www.postgresql.org\/docs\/15\/runtime-config-wal.html#GUC-WAL-COMPRESSION\">zstd<\/a>); \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0441\u0436\u0430\u0442\u0438\u044f \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 <a href=\"https:\/\/www.postgresql.org\/docs\/15\/runtime-config-wal.html#GUC-WAL-COMPRESSION\">pg_basebackup<\/a>;<\/li>\n<li>\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0432\u044b\u0432\u043e\u0434\u0430 \u043b\u043e\u0433\u043e\u0432 \u0432 JSON-\u0444\u043e\u0440\u043c\u0430\u0442\u0435;<\/li>\n<li>\u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043f\u0440\u0438 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0435 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438 \u0438 \u043d\u0430 \u0434\u0438\u0441\u043a\u0435<\/li>\n<\/ul>\n<p>\u041e\u0431 \u044d\u0442\u043e\u043c \u043c\u043d\u043e\u0433\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e, \u0441\u0435\u0439\u0447\u0430\u0441 \u043c\u044b \u043d\u0430 \u044d\u0442\u043e\u043c \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0435 \u0431\u0443\u0434\u0435\u043c (\u043d\u043e \u043c\u043e\u0436\u043d\u043e \u0433\u043b\u044f\u043d\u0443\u0442\u044c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u0440\u0430\u0442\u043a\u0438\u0439 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439 <b><a href=\"https:\/\/www.percona.com\/blog\/postgresql-15-new-features-to-be-excited-about\/\">PostgreSQL 15 \u2013 New Features to Be Excited About<\/a><\/b> \u043e\u0442 <i>\u0423\u043c\u0430\u0440\u0430 \u0428\u0430\u0445\u0438\u0434\u0430<\/i>, Umair Shahid, Percona) \u0438 \u043f\u0430\u0440\u0443 \u0441\u0441\u044b\u043b\u043e\u043a \u043d\u0438\u0436\u0435 \u043f\u043e \u043f\u043e\u0432\u043e\u0434\u0443 \u0441\u0445\u0435\u043c\u044b public.<\/p>\n<p>  \u041c\u043e\u0436\u043d\u043e, \u043e\u0434\u043d\u0430\u043a\u043e, \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u043e \u043d\u0435 \u0441\u0435\u0439\u0447\u0430\u0441, \u0430 \u0435\u0449\u0451 \u0432 \u0444\u0430\u0437\u0435 <b><a href=\"https:\/\/www.postgresql.org\/about\/news\/postgresql-15-beta-4-released-2507\/\">PostgreSQL 15 Beta 4<\/a><\/b>. \u0422\u043e\u0433\u0434\u0430 \u043e\u0442\u043a\u0430\u0442\u0438\u043b\u0438 \u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0441\u0435\u0440\u0438\u044e \u043f\u0430\u0442\u0447\u0435\u0439, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 SQL\/JSON.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-340088","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/340088","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=340088"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/340088\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=340088"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=340088"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=340088"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}