{"id":322902,"date":"2021-05-11T15:00:38","date_gmt":"2021-05-11T15:00:38","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=322902"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=322902","title":{"rendered":"Postgresso 31"},"content":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\"><i>\u041d\u0430\u0434\u0435\u0435\u043c\u0441\u044f, \u0447\u0442\u043e \u0432\u044b \u0445\u043e\u0440\u043e\u0448\u043e \u043e\u0442\u0434\u043e\u0445\u043d\u0443\u043b\u0438 \u0438 \u043f\u043e\u043f\u0440\u0430\u0437\u0434\u043d\u043e\u0432\u0430\u043b\u0438. \u0410 \u043c\u044b \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c \u0432\u0430\u043c \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u0443\u044e \u0441\u0432\u043e\u0434\u043a\u0443 Postgres-\u043d\u043e\u0432\u043e\u0441\u0442\u0435\u0439.<\/i><\/p>\n<h3>PostgreSQL 14 Beta 1<\/h3>\n<p>  \u0420\u0435\u043b\u0438\u0437\u043d\u0430\u044f \u0433\u0440\u0443\u043f\u043f\u0430 \u0432 \u0441\u043e\u0441\u0442\u0430\u0432\u0435 <i>\u041f\u0438\u0442 \u0413\u0435\u0439\u0433\u0430\u043d<\/i> (Pete Geoghegan, Crunchy Data), <i>\u041c\u0438\u0448\u0435\u043b\u044c \u041f\u0430\u043a\u044c\u0435<\/i> (Michael Paquier, VMWare) \u0438 <i>\u042d\u043d\u0434\u0440\u044e \u0414\u0430\u043d\u0441\u0442\u0430\u043d<\/i> (Andrew Dunstan, EDB) \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e\u0442 \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u0442\u044c \u0431\u0435\u0442\u0443 20-\u0433\u043e \u043c\u0430\u044f, \u043a\u0430\u043a \u044d\u0442\u043e \u0438 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u043b\u043e \u0441 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u043c\u0438 \u0431\u0435\u0442\u0430\u043c\u0438.<\/p>\n<h3>Commitfest afterparty<\/h3>\n<p>  <b><a href=\"https:\/\/habr.com\/ru\/company\/postgrespro\/blog\/550632\/?fbclid=IwAR2adWZlRxbC7iztPzUsbGTCND_ZnadmTgy9UO94cgIbWFbIkpBx0JzaUnQ\">PostgreSQL 14: \u0427\u0430\u0441\u0442\u044c 5 \u0438\u043b\u0438 \u00ab\u0432\u0435\u0441\u0435\u043d\u043d\u0438\u0435 \u0437\u0430\u043c\u043e\u0440\u043e\u0437\u043a\u0438\u00bb (\u041a\u043e\u043c\u043c\u0438\u0442\u0444\u0435\u0441\u0442 2021-03)<\/a><\/b><\/p>\n<p>  \u0412 \u044d\u0442\u043e\u043c \u043e\u0431\u0437\u043e\u0440\u0435 \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e \u0432\u0441\u0435\u0433\u043e, \u0443\u0440\u043e\u0436\u0430\u0439\u043d\u044b\u0439 \u043a\u043e\u043c\u043c\u0438\u0442\u0444\u0435\u0441\u0442.<br \/>  \u0412\u0441\u0451 \u0441\u0430\u043c\u043e\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435 \u043e \u043f\u0435\u0440\u0432\u044b\u0445 \u0447\u0435\u0442\u044b\u0440\u0435\u0445 \u043a\u043e\u043c\u043c\u0438\u0442\u0444\u0435\u0441\u0442\u0430\u0445 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u0441\u0442\u0430\u0442\u044c\u044f\u0445 \u0441\u0435\u0440\u0438\u0438: <a href=\"https:\/\/habr.com\/ru\/company\/postgrespro\/blog\/510124\/\">\u0438\u044e\u043b\u044c\u0441\u043a\u0438\u0439<\/a>, <a href=\"https:\/\/habr.com\/ru\/company\/postgrespro\/blog\/522428\/\">\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044c\u0441\u043a\u0438\u0439<\/a>, <a href=\"https:\/\/habr.com\/ru\/company\/postgrespro\/blog\/533058\/\">\u043d\u043e\u044f\u0431\u0440\u044c\u0441\u043a\u0438\u0439<\/a>, <a href=\"https:\/\/habr.com\/ru\/company\/postgrespro\/blog\/541252\/\">\u044f\u043d\u0432\u0430\u0440\u0441\u043a\u0438\u0439<\/a>.<\/p>\n<p>  \u0412\u043e\u0442 \u0430\u0432\u0442\u043e\u0440\u0441\u043a\u0438\u0439 \u0442\u0438\u0437\u0435\u0440:<\/p>\n<ul>\n<li>\u041c\u043e\u0436\u0435\u0442 \u043b\u0438 \u043e\u0434\u0438\u043d \u0437\u0430\u043f\u0440\u043e\u0441 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u043d\u0430 \u0440\u0430\u0437\u043d\u044b\u0445 \u0441\u0435\u0440\u0432\u0435\u0440\u0430\u0445?<\/li>\n<li>\u041a\u0430\u043a \u043d\u0430\u0439\u0442\u0438 \u0437\u0430\u043f\u0440\u043e\u0441 \u0438\u0437 <code>pg_stat_activity<\/code> \u0432 <code>pg_stat_statements<\/code>?<\/li>\n<li>\u041c\u043e\u0436\u043d\u043e \u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0438 \u0443\u0434\u0430\u043b\u044f\u0442\u044c \u0441\u0435\u043a\u0446\u0438\u0438 \u0441\u0435\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043d\u0435 \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435?<\/li>\n<li>\u041a\u0430\u043a \u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u043d\u0430 \u043f\u0440\u043e\u0434 \u0447\u0442\u043e\u0431\u044b \u043e\u043d\u0438 \u043c\u043e\u0433\u043b\u0438 \u0432\u0441\u0451 \u0432\u0438\u0434\u0435\u0442\u044c, \u043d\u043e \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043c\u043e\u0433\u043b\u0438 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c?<\/li>\n<li>\u041f\u043e\u0447\u0435\u043c\u0443 VACUUM \u043f\u043e\u0441\u043b\u0435 COPY FREEZE \u0437\u0430\u043d\u043e\u0432\u043e \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0432\u0441\u044e \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0438 \u0447\u0442\u043e \u0441 \u044d\u0442\u0438\u043c \u0434\u0435\u043b\u0430\u0442\u044c?<\/li>\n<li>\u041c\u043e\u0436\u043d\u043e \u043b\u0438 \u0441\u0436\u0438\u043c\u0430\u0442\u044c TOAST \u0447\u0435\u043c-\u0442\u043e \u043a\u0440\u043e\u043c\u0435 \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e\u0433\u043e <code>zlib<\/code>?<\/li>\n<li>\u041a\u0430\u043a \u043f\u043e\u043d\u044f\u0442\u044c \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0434\u043b\u0438\u0442\u0441\u044f \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0430 \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u0430\u044f \u0432 pg_locks?<\/li>\n<li>\u0414\u043b\u044f \u0447\u0435\u0433\u043e \u043d\u0443\u0436\u043d\u044b CYCLE \u0438 SEARCH \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e\u043c\u0443 \u0437\u0430\u043f\u0440\u043e\u0441\u0443?<\/li>\n<li>\u0422\u0435\u043a\u0441\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u043d\u0430 \u043a\u0430\u043a\u0438\u0445 \u044f\u0437\u044b\u043a\u0430\u0445 (\u043a\u0440\u043e\u043c\u0435 C) \u043d\u0435 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u0432\u044b\u0437\u043e\u0432\u0435?<\/li>\n<\/ul>\n<p>  <a name=\"habracut\"><\/a>  <\/p>\n<h3>\u041c\u0438\u0433\u0440\u0430\u0446\u0438\u044f<\/h3>\n<p>  <b><a href=\"https:\/\/www.migops.com\/blog\/2021\/04\/25\/char1-to-boolean-datatype-transformation-while-migrating-to-postgresql\/\">CHAR(1) to Boolean transformation while migrating to PostgreSQL<\/a><\/b><\/p>\n<p>  \u0412 Oracle \u043d\u0435\u0442 \u0442\u0438\u043f\u0430 <a href=\"https:\/\/postgrespro.ru\/docs\/postgresql\/13\/datatype-boolean\">boolean<\/a>, \u0430 \u0432 PostgreSQL \u2014 \u0435\u0441\u0442\u044c. \u041d\u043e \u043f\u043e\u0447\u0435\u043c\u0443 \u0431\u044b \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u043e\u0442 \u0442\u0438\u043f, \u0435\u0441\u043b\u0438 \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0439 \u043e\u0440\u0430\u043a\u043b\u043e\u0432\u043e\u0439 \u0431\u0430\u0437\u0435 \u0435\u0441\u0442\u044c \u0441\u0442\u043e\u043b\u0431\u0435\u0446 <i>boolean<\/i>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0442\u0430\u043c \u0432 \u0432\u0438\u0434\u0435 CHAR(1) \u0441 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435\u043c CHECK? \u041c\u043e\u0436\u043d\u043e. \u041d\u043e \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0431\u044b \u0435\u0449\u0451 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u044e, \u0447\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u0435 \u043e\u0442 \u0440\u0435\u0437\u0440\u0435\u0448\u0435\u043d\u043d\u044b\u0445 \u0434\u043b\u044f Postgres \u043d\u0435 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442 \u0440\u0430\u0431\u043e\u0442\u0443 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0430 \u0431\u0443\u0434\u0443\u0442 \u0434\u043e\u043b\u0436\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u044b. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c <a href=\"https:\/\/postgrespro.ru\/docs\/postgresql\/13\/sql-createcast\">CAST<\/a>:  <\/p>\n<pre><code class=\"pgsql\">CREATE CAST (char as bool) WITH FUNCTION char_to_bool(char);<\/code><\/pre>\n<p>\u0414\u0430\u043b\u0435\u0435 \u0430\u0432\u0442\u043e\u0440 \u2014 <i>\u0414\u0438\u043b\u0438\u043f \u041a\u0443\u043c\u0430\u0440<\/i> (Dileep Kumar, MigOps) \u2014 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043f\u0440\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0438 CAST \u043a\u0430\u043a IMPLICIT, \u0430 \u043f\u043e\u0442\u043e\u043c \u043f\u0440\u043e\u0433\u043e\u043d\u044f\u0435\u0442 \u0437\u0430\u043f\u0440\u043e\u0441 (\u043e\u0431\u044b\u0447\u043d\u044b\u0439 SELECT) \u043d\u0430 \u0442\u0435\u0441\u0442\u0430\u0445, \u0447\u0442\u043e\u0431\u044b \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0440\u0430\u0437\u043d\u0438\u0446\u0443 CHAR(1) vs Explicit Casting vs Implicit Casting vs Boolean. \u041f\u043e\u0431\u0435\u0436\u0434\u0430\u0435\u0442, \u043a\u0430\u043a \u0438 \u043e\u0436\u0438\u0434\u0430\u043b\u043e\u0441\u044c, Boolean.<\/p>\n<p>  <b><a href=\"https:\/\/blog.crunchydata.com\/blog\/choice-of-table-column-types-and-order-when-migrating-to-postgresql\">Choice of Table Column Types and Order When Migrating to PostgreSQL<\/a><\/b><\/p>\n<p>  \u0412 \u0441\u0442\u0430\u0442\u044c\u0435 <i>\u0421\u0442\u0438\u0432\u0435\u043d\u0430 \u0424\u0440\u043e\u0441\u0442\u0430<\/i> (Stephen Frost) \u0441 \u0443\u0447\u0430\u0441\u0442\u0438\u0435\u043c \u0435\u0433\u043e \u043a\u043e\u043b\u043b\u0435\u0433\u0438 \u043f\u043e Crunchy Data <i>\u0414\u044d\u0432\u0438\u0434\u0430 \u042e\u0430\u0442\u0442\u0430<\/i> (David Youatt) \u0442\u043e\u0436\u0435 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0441\u044f \u043e \u0442\u043e\u043c, \u043a\u0430\u043a\u043e\u0439 \u0442\u0438\u043f \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0432 PostgreSQL \u043f\u0440\u0438 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438, \u043d\u043e \u0435\u0449\u0451 \u0438 \u043e \u0442\u043e\u043c, \u0432 \u043a\u0430\u043a\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u0442\u044c \u0441\u0442\u043e\u043b\u0431\u0446\u044b, \u0447\u0442\u043e\u0431\u044b \u0434\u0430\u043d\u043d\u044b\u0435 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0432 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0441\u044c \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u0430\u043c\u044b\u0435 \u0448\u0438\u0440\u043e\u043a\u0438\u0435 \u043f\u043e\u043b\u044f \u0441 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0448\u0438\u0440\u0438\u043d\u043e\u0439, \u0437\u0430\u0442\u0435\u043c \u043c\u0435\u043d\u0435\u0435 \u0448\u0438\u0440\u043e\u043a\u0438\u0435 \u0441 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0442\u043e\u043c \u043f\u043e\u043b\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0448\u0438\u0440\u0438\u043d\u044b \u2014 \u0438\u043d\u0430\u0447\u0435 \u043f\u043e\u044f\u0432\u044f\u0442\u0441\u044f \u0434\u044b\u0440\u044b \u0432 \u0434\u0430\u043d\u043d\u044b\u0445. \u0421\u0442\u0438\u0432\u0435\u043d \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0438 \u043f\u0440\u043e \u043d\u0435\u043f\u0440\u0438\u044f\u0442\u043d\u044b\u0435 \u0441\u044e\u0440\u043f\u0440\u0438\u0437\u044b \u0441 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c, \u0438\u0437\u043b\u0438\u0448\u043d\u0435 \u0440\u044c\u044f\u043d\u043e \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u044f \u0441 \u0442\u0438\u043f\u0430\u043c\u0438 PostgreSQL. \u0415\u0449\u0451 \u0441\u043e\u0432\u0435\u0442: \u0432\u044b\u0431\u0438\u0440\u0430\u0439\u0442\u0435 NUMERIC \u0438\u043b\u0438 DECIMAL \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u043e\u0433\u0434\u0430, \u043a\u043e\u0433\u0434\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e (\u0441\u0447\u0438\u0442\u0430\u044f \u0434\u0435\u043d\u044c\u0433\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440), \u0430 \u0435\u0441\u043b\u0438 \u043d\u0435\u0442, \u0442\u043e \u043e\u0431\u0445\u043e\u0434\u0438\u0442\u0435\u0441\u044c NTEGER, BIGINT, REAL, DOUBLE PRECISION \u2014 \u044d\u0442\u043e \u043f\u0440\u043e\u0449\u0435 \u0438 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u0435\u0439.<\/p>\n<p>  <\/p>\n<h3>\u041c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435<\/h3>\n<p>  <b><a href=\"https:\/\/onesignal.com\/blog\/lessons-learned-from-5-years-of-scaling-postgresql\/\">Lessons Learned From 5 Years of Scaling PostgreSQL<\/a><\/b><\/p>\n<p>  <i>\u0414\u0436\u043e \u0423\u0438\u043b\u043c<\/i> (Joe Wilm) \u043e\u0431\u043e\u0431\u0449\u0430\u0435\u0442 \u043e\u043f\u044b\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f PostgreSQL \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 OneSignal. \u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u0434\u043e\u0440\u043e\u0441\u043b\u0430 \u0437\u0430 5 \u043b\u0435\u0442 \u0434\u043e 75 \u0422\u0411 \u043d\u0430 40 \u0441\u0435\u0440\u0432\u0435\u0440\u0430\u0445. \u041f\u043e\u043d\u044f\u0442\u043d\u043e, \u0447\u0442\u043e \u043d\u0435 \u0432\u0441\u0435 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0431\u044b\u043b\u0438 \u043f\u0440\u0438\u043d\u044f\u0442\u044b \u0441\u0440\u0430\u0437\u0443 \u2014 \u043d\u0430 \u0432\u044b\u0440\u043e\u0441\u0442. \u041a\u0430\u043a \u0440\u0435\u0448\u0430\u044e\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0438 \u043a\u0430\u043a \u0438\u0445 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u2014 \u043e\u0431 \u044d\u0442\u043e\u043c \u0438 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0430\u0432\u0442\u043e\u0440. \u0414\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u043e\u043d \u0440\u0430\u0437\u0431\u0438\u043b \u0441\u0442\u0430\u0442\u044c\u044e \u043f\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0430\u043c (\u0441\u043e\u0437\u043d\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435 \u043f\u0435\u0440\u0435\u0432\u043e\u0436\u0443, \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043c\u043d\u043e\u0433\u043e \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u0445 \u0441\u043b\u043e\u0432 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0431\u044b \u043f\u0438\u0441\u0430\u0442\u044c \u043a\u0438\u0440\u0438\u043b\u043b\u0438\u0446\u0435\u0439):<br \/>  <b><a href=\"https:\/\/onesignal.com\/blog\/lessons-learned-from-5-years-of-scaling-postgresql\/#bloat\">Bloat<\/a><\/b> \u0442\u0430\u0431\u043b\u0438\u0446 \u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432. \u041a\u043e\u0440\u043e\u0442\u043a\u043e \u043e (\u0445\u043e\u0440\u043e\u0448\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0445) \u043f\u0440\u0438\u0447\u0438\u043d\u0430\u0445 \u0440\u0430\u0441\u043f\u0443\u0445\u0430\u043d\u0438\u044f. <a href=\"https:\/\/reorg.github.io\/pg_repack\/\">pg_repack<\/a> \u0441\u043f\u0440\u0430\u0432\u043b\u044f\u043b\u0441\u044f \u0442\u0430\u043a \u0441\u0435\u0431\u0435 (\u0441\u043c. \u043f\u0440\u0438\u0447\u0438\u043d\u044b), \u043d\u0430\u043f\u0438\u0441\u0430\u043b\u0438 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0434\u0435\u043c\u043e\u043d, \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0438\u0440\u0443\u044e\u0449\u0438\u0439 \u0435\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u0443. \u041f\u0435\u0440\u0435\u0448\u043b\u0438 \u043a <a href=\"https:\/\/github.com\/dataegret\/pgcompacttable\">pgcompacttable<\/a> \u0442\u0430\u043c, \u0433\u0434\u0435 pg_repack \u043e\u0431\u0432\u0430\u043b\u0438\u0432\u0430\u0435\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c (\u043f\u0435\u0440\u0435\u0448\u043b\u0438 \u043d\u0435 \u0432\u0435\u0437\u0434\u0435, pgcompacttable \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430\u0434\u0451\u0436\u043d\u0435\u0439, \u043d\u043e \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u0435\u0439). \u0415\u0441\u0442\u044c \u0438 \u043e\u0431 \u0443\u043b\u043e\u0432\u043a\u0430\u0445 \u043f\u043e \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438: \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0431\u044b\u043b\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u044b, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u043f\u043e\u043b\u044f (\u043e\u043a\u043e\u043b\u043e 1 \u041a\u0411) \u0432 \u043b\u0438\u0447\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u0438 \u043f\u043e\u043b\u0435 <code>last_seen_time int<\/code>, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0447\u0430\u0441\u0442\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u043b\u043e\u0441\u044c. \u0418\u0445 \u0440\u0430\u0437\u043d\u0435\u0441\u043b\u0438 \u043f\u043e \u0440\u0430\u0437\u043d\u044b\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u043c: \u043e\u0434\u043d\u0438\u043c JOIN \u0431\u043e\u043b\u044c\u0448\u0435, \u0437\u0430\u0442\u043e \u043d\u0435 \u043a\u043e\u043f\u044f\u0442\u0441\u044f \u043a\u0438\u043b\u043e\u0431\u0430\u0439\u0442\u044b \u043f\u0440\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0438 \u0441\u0442\u0440\u043e\u043a\u0438.<br \/>  <b><a href=\"https:\/\/onesignal.com\/blog\/lessons-learned-from-5-years-of-scaling-postgresql\/#database-upgrades\">Database upgrade<\/a><\/b>. \u041c\u0430\u0436\u043e\u0440\u043d\u044b\u0435 \u0438 \u043c\u0438\u043d\u043e\u0440\u043d\u044b\u0435. \u0421 \u043c\u0430\u0436\u043e\u0440\u043d\u044b\u043c\u0438 \u0441\u043f\u0440\u0430\u0432\u043b\u044f\u043b\u0438\u0441\u044c \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438 <a href=\"https:\/\/www.2ndquadrant.com\/en\/resources\/pglogical\/\">pglogical<\/a>. \u041f\u0440\u0438 \u043c\u0438\u043d\u043e\u0440\u044b\u0445 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u0440\u0442\u043e\u0432\u044b\u0432\u0430\u043b\u0438 postgres.<br \/>  <b><a href=\"https:\/\/onesignal.com\/blog\/lessons-learned-from-5-years-of-scaling-postgresql\/#xid-wraparound\">Wraparound<\/a><\/b>. \u0421\u0435\u0440\u044c\u0451\u0437\u043d\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0434\u043b\u044f \u0442\u0430\u043a\u0438\u0445 \u043d\u0430\u0433\u0440\u0443\u0437\u043e\u043a. \u041e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0438\u0441\u044c \u043d\u0430 \u043e\u043f\u043e\u0432\u0435\u0449\u0435\u043d\u0438\u044f\u0445 \u043f\u0440\u0438 \u043f\u0440\u0438\u0431\u043b\u0438\u0436\u0435\u043d\u0438\u0438 \u043a 250 \u043c\u043b\u043d \u043e\u0441\u0442\u0430\u0432\u0448\u0438\u0445\u0441\u044f <code>XID<\/code>. \u041d\u0430\u043f\u043e\u043c\u043d\u0438\u043c, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u0447\u0442\u043e \u0432 Postgres Pro Enterprise 64-\u0431\u0438\u0442\u043d\u044b\u0435 <code>XID<\/code>.<br \/>  <b><a href=\"https:\/\/onesignal.com\/blog\/lessons-learned-from-5-years-of-scaling-postgresql\/#replica-promotion\">Replica Promotion<\/a><\/b>. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043e\u0431\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043c\u0438 <a href=\"https:\/\/www.haproxy.org\/\">haproxy<\/a>. \u0423\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e <a href=\"https:\/\/github.com\/zalando\/patroni\">Patroni<\/a>, \u043d\u043e \u0438 \u0442\u043e \u0432 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 \u00ab\u043c\u044b \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c, \u043d\u043e \u043c\u043e\u0436\u0435\u0442 \u0438 \u0441\u0442\u043e\u0438\u043b\u043e\u00bb. \u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0435\u0441\u0442\u044c \u0434\u0432\u0430 \u0431\u044d\u043a\u0435\u043d\u0434\u0430: \u043e\u0434\u0438\u043d read-write, \u0434\u0440\u0443\u0433\u043e\u0439 read-only. \u041f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u043f\u0430\u0440\u0443 \u0441\u0435\u043a\u0443\u043d\u0434.<br \/>  <b><a href=\"https:\/\/onesignal.com\/blog\/lessons-learned-from-5-years-of-scaling-postgresql\/#partitioning\">Partitioning<\/a><\/b> \u0438 <b><a href=\"https:\/\/onesignal.com\/blog\/lessons-learned-from-5-years-of-scaling-postgresql\/#sharding\">Sharding<\/a><\/b>. \u0412\u0430\u0436\u043d\u0435\u0439\u0448\u0430\u044f \u0448\u0442\u0443\u043a\u0430 \u0434\u043b\u044f \u0442\u0430\u043a\u043e\u0439 \u0431\u0430\u0437\u044b, \u043a\u043e\u043d\u0435\u0447\u043d\u043e. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u043e\u0440\u0435\u0437\u0430\u043b\u0438 \u043d\u0430 16 \u0441\u0435\u043a\u0446\u0438\u0439, \u043f\u043e\u0442\u043e\u043c \u043d\u0430 256, \u0430 \u0432 \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0438\u0445 \u043f\u043b\u0430\u043d\u0430\u0445 \u2014 4096. \u0420\u0435\u0437\u0430\u043b\u0438 \u043d\u0430 \u043a\u0443\u0441\u043a\u0438 \u0432\u044b\u0431\u0438\u0440\u0430\u044f \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043a\u0440\u0438\u0442\u0435\u0440\u0438\u044f \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u044f id \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b. \u0421\u0435\u0439\u0447\u0430\u0441 \u0434\u0443\u043c\u0430\u044e\u0442 \u043d\u0430\u0434 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435\u043c data proxy \u2014 \u0441\u043b\u043e\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0437\u043d\u0430\u0442\u044c, \u043a\u0430\u043a \u0440\u0430\u0437\u0440\u0435\u0437\u0430\u043d\u044b \u0434\u0430\u043d\u043d\u044b\u0435 \u0438 \u0433\u0434\u0435 \u043b\u0435\u0436\u0430\u0442, \u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e. \u0427\u0442\u043e\u0431\u044b \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c \u044d\u0442\u043e\u0433\u043e \u043d\u0435 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u043e\u0441\u044c \u0437\u043d\u0430\u0442\u044c \u0434\u043b\u044f \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b. \u0421\u0435\u0442\u0443\u044e\u0442, \u0447\u0442\u043e \u043d\u0435 \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u0442\u0430\u043a \u0441 \u0441\u0430\u043c\u043e\u0433\u043e \u043d\u0430\u0447\u0430\u043b\u0430.<\/p>\n<p>  <\/p>\n<h3>\u0421\u0430\u043c\u043e\u043a\u0440\u0438\u0442\u0438\u043a\u0430<\/h3>\n<p>  <b><a href=\"https:\/\/m.habr.com\/ru\/company\/tensor\/blog\/553754\/\">\u0427\u0435\u0433\u043e \u00ab\u044d\u043d\u0442\u0435\u0440\u043f\u0440\u0430\u0439\u0437\u0443\u00bb \u0432 PostgreSQL \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442<\/a><\/b><\/p>\n<p>  \u0412\u043e\u0442 \u0447\u0435\u0433\u043e \u0435\u043c\u0443 \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442 \u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u0432\u0430\u0436\u043d\u043e\u0441\u0442\u0438 (\u043f\u043e <i>\u041a\u0438\u0440\u0438\u043b\u043b\u0443 \u0411\u043e\u0440\u043e\u0432\u0438\u043a\u043e\u0432\u0443<\/i>, \u0430\u0432\u0442\u043e\u0440\u0443 \u0441\u0442\u0430\u0442\u044c\u0438)<\/p>\n<ul>\n<li>\u043b\u0435\u0433\u043a\u043e\u0432\u0435\u0441\u043d\u043e\u0433\u043e \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u0430 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439 (\u043e\u043d \u0436\u0435 <b>built-in connection pooler<\/b>);<\/li>\n<li><b>64<\/b>-bit XID;<\/li>\n<li><b>\u043c\u0438\u043a\u0440\u043e<\/b>\u0442\u0430\u0431\u043b\u0438\u0446 (\u0440\u0435\u0447\u044c \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u0443 \u043a\u0430\u0436\u0434\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u0430 \u0432 PostgreSQL \u0435\u0441\u0442\u044c 3 \u00ab\u0444\u043e\u0440\u043a\u0430\u00bb \u2014 \u0444\u0430\u0439\u043b\u0430, \u043d\u043e \u043f\u043e\u0447\u0435\u043c\u0443 \u0431\u044b \u043d\u0435 \u043e\u0431\u043e\u0439\u0442\u0438\u0441\u044c 1 \u0444\u0430\u0439\u043b\u043e\u043c (heap) \u0434\u043b\u044f \u043c\u0435\u043b\u043a\u0438\u0445 \u00ab\u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u044b\u0445\u00bb \u0442\u0430\u0431\u043b\u0438\u0447\u0435\u043a?);<\/li>\n<li><b>zheap<\/b>;<\/li>\n<li><b>append-only<\/b> storage (\u0430 \u0432 \u0438\u0434\u0435\u0430\u043b\u0435, \u2014 \u0441\u0447\u0438\u0442\u0430\u0435\u0442 \u041a\u0438\u0440\u0438\u043b\u043b \u2014 \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0438\u043c\u0435\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043d\u0430\u0437\u043d\u0430\u0447\u0430\u0442\u044c \u0447\u0430\u0441\u0442\u044c \u043f\u043e\u043b\u0435\u0439 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \u0438\u043b\u0438 \u0446\u0435\u043b\u044b\u0445 \u0442\u0430\u0431\u043b\u0438\u0446 \u043a\u0430\u043a \u00abno-MVCC\u00bb \u0447\u0442\u043e\u0431\u044b \u0438\u043d\u043e\u0433\u0434\u0430 \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442\u044c \u043d\u0430 \u043f\u043e\u043b\u044f\u0445 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 MVCC);<\/li>\n<li><b>\u043e\u0442\u043b\u043e\u0436\u0435\u043d\u043d\u0430\u044f<\/b> \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u0446\u0438\u044f (\u0447\u0442\u043e\u0431\u044b \u0441\u0435\u0440\u0432\u0435\u0440 \u043c\u043e\u0433 \u00ab\u0440\u0430\u0437\u043c\u0430\u0437\u0430\u0442\u044c\u00bb \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0432\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0434\u043b\u044f \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u043a\u0438 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u2014 \u044d\u0442\u0430 \u0442\u0435\u043c\u0430 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0432\u0430\u0436\u043d\u0430 \u0434\u043b\u044f \u043a\u043e\u043d\u043a\u0443\u0440\u0435\u043d\u0446\u0438\u0438 \u0441 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u043c\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u043c\u0438, \u0433\u0434\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430 \u00ab\u043d\u0430\u0439\u0442\u0438 \u0432\u043e\u043e\u0431\u0449\u0435\u00bb, \u0430 \u043d\u0435 \u00ab\u043d\u0430\u0439\u0442\u0438 \u043f\u0440\u044f\u043c\u043e \u0441\u0440\u0430\u0437\u0443 \u0441\u0435\u0439\u0447\u0430\u0441\u00bb);<\/li>\n<li><b>columnar<\/b> storage (\u0432 \u0438\u0434\u0435\u0430\u043b\u0435 \u2014 \u0432 \u044f\u0434\u0440\u0435 \u0438\u043b\u0438 \u0432 <code>contrib<\/code>);<\/li>\n<li><b>in-memory<\/b> storage (\u043e\u0447\u0435\u043d\u044c \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e <b>\u043d\u0435\u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u043e\u043d\u043d\u043e\u0433\u043e<\/b> \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 \u0431\u0435\u0437 \u0441\u0431\u0440\u043e\u0441\u0430 \u043d\u0430 \u0434\u0438\u0441\u043a);<\/li>\n<li>\u043d\u0435 \u043f\u0443\u0445\u043d\u0443\u0449\u0438\u0445 TEMPORARY TABLE, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u043d\u0430 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0445;<\/li>\n<li><b>multimaster<\/b> \u00ab\u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438\u00bb;<\/li>\n<li>SQL-defined index (\u0443\u043c\u0435\u0442\u044c \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u0432\u0438\u0434\u044b \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \u043f\u0440\u044f\u043c\u043e \u043d\u0430 SQL\/PLpgSQL);<\/li>\n<li>\u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 (\u0437\u0434\u0435\u0441\u044c \u041a\u0438\u0440\u0438\u043b\u043b \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u0433\u043b\u044f\u043d\u0443\u0442\u044c, \u043a\u0430\u043a \u044d\u0442\u043e \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0430 \u0440\u043e\u0434\u043d\u043e\u043c <a href=\"http:\/\/explain.tensor.ru\">explain.tensor.ru<\/a>);<\/li>\n<li>\u0441\u043d\u0430\u043f\u0448\u043e\u0442\u043e\u0432 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438 \u0442\u0430\u0431\u043b\u0438\u0446 (\u043a\u0430\u043a \u0432 <a href=\"https:\/\/github.com\/zubkov-andrei\/pg_profile\">pg_profile<\/a> <i>[\u0430 \u0442\u0435\u043c \u0431\u043e\u043b\u0435\u0435 \u0432 <a href=\"https:\/\/postgrespro.ru\/docs\/postgrespro\/13\/pgpro-pwr\">pgpro_pwr<\/a> \u2014 \u043f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435 \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u0438]<\/i>).<\/li>\n<\/ul>\n<p>  \u041a \u042d\u0422\u041e\u041c\u0423 \u0414\u041e\u0411\u0410\u0412\u0418\u041b\u0418\u0421\u042c \u00ab\u0425\u041e\u0422\u0415\u041b\u041a\u0418\u00bb \u0418\u0417 \u041a\u041e\u041c\u041c\u0415\u041d\u0422\u0410\u0420\u0418\u0415\u0412:<\/p>\n<ul>\n<li>IS NOT DISTINCT FROM \u043f\u0440\u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u0446\u0438\u0438;<\/li>\n<li>failover \u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438 (\u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e <a href=\"https:\/\/docs.microsoft.com\/ru-ru\/sql\/database-engine\/availability-groups\/windows\/always-on-availability-groups-sql-server?view=sql-server-ver15\">Always on<\/a> \u0443 MS SQL) \u0431\u0435\u0437 Patroni \u0438 \u0441\u043e\u043f\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445;<\/li>\n<li><a href=\"https:\/\/anarazel.de\/talks\/2020-01-31-fosdem-aio\/aio.pdf\">Asynchronous IO \u0438 Direct IO<\/a>;<\/li>\n<li>\u0431\u0435\u0441\u0448\u043e\u0432\u043d\u043e\u0433\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043c\u0430\u0436\u043e\u0440\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438;<\/li>\n<li>flashback queries;<\/li>\n<li>edition-based redefinition;<\/li>\n<li>\u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u043a\u043e\u043c\u043f\u0440\u0435\u0441\u0441\u0438\u0438.<\/li>\n<\/ul>\n<p>  \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437 \u044d\u0442\u0438\u0445 \u00ab\u0445\u043e\u0442\u0435\u043b\u043e\u043a\u00bb \u043d\u0430 \u043f\u0443\u0442\u0438 \u043a \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0438\u043c \u0432\u0435\u0440\u0441\u0438\u044f\u043c, \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u0432 Postgres Pro Enterprise (\u043e \u0447\u0451\u043c \u043d\u0435 \u0443\u043c\u0430\u043b\u0447\u0438\u0432\u0430\u0435\u0442 \u0438 \u0430\u0432\u0442\u043e\u0440).<\/p>\n<p>  <b>\u0412\u0438\u0434\u0435\u043e-\u0432\u0442\u043e\u0440\u043d\u0438\u043a <a href=\"https:\/\/www.youtube.com\/watch?v=k-HtFrnXjEU\">s02e15: \u0414\u0435\u0441\u044f\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c PostgreSQL. \u041c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432, pg_profile<\/a><\/b><\/p>\n<p>  (\u044d\u0442\u043e \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 <a href=\"https:\/\/www.youtube.com\/watch?v=16y-y1BnHKY&amp;t=159s\">\u0432\u0442\u043e\u0440\u043d\u0438\u043a\u0430 <\/a>) \u0441 <i>\u0410\u043d\u0434\u0440\u0435\u0435\u043c \u0417\u0443\u0431\u043a\u043e\u0432\u044b\u043c<\/i>)<\/p>\n<p>  \u0421\u0442\u0430\u0442\u044c\u044f <i>\u0420\u0438\u043a\u0430 \u0411\u0440\u044d\u043d\u0441\u043e\u043d\u0430<\/i>: <b><a href=\"https:\/\/rbranson.medium.com\/10-things-i-hate-about-postgresql-20dbab8c2791\">(Rick Branson) 10 things I Hate In Postgres<\/a><\/b> \u0432\u043d\u0435\u0437\u0430\u043f\u043d\u043e \u043f\u043e\u043f\u0430\u043b\u0430 \u0432 \u0442\u043e\u043f \u043e\u0431\u0441\u0443\u0436\u0434\u0430\u0435\u043c\u044b\u0445. \u0412\u043e\u0442 \u0435\u0451 \u043d\u0435 \u043c\u0438\u043d\u043e\u0432\u0430\u043b\u0438 \u0438 \u0443\u0441\u0442\u0440\u043e\u0438\u0442\u0435\u043b\u0438 ruPostgres.\u0412\u0442\u043e\u0440\u043d\u0438\u043a\u043e\u0432 <i>\u041d\u0438\u043a\u043e\u043b\u0430\u0439 \u0421\u0430\u043c\u043e\u0445\u0432\u0430\u043b\u043e\u0432<\/i> \u0438 <i>\u0418\u043b\u044c\u044f \u041a\u043e\u0441\u043c\u043e\u0434\u0435\u043c\u044c\u044f\u043d\u0441\u043a\u0438\u0439<\/i>.<\/p>\n<p>  \u041e \u043d\u0435\u0439 <a href=\"https:\/\/habr.com\/ru\/company\/postgrespro\/blog\/496974\/\">\u043c\u044b \u043f\u0438\u0441\u0430\u043b\u0438<\/a> \u0432 Postgreso 20. \u041d\u0430 <a href=\"https:\/\/www.youtube.com\/channel\/UC0SBGSNmBLrTZIkbN-lJHnw\">ruPostgres.\u0432\u0442\u043e\u0440\u043d\u0438\u043a\u0435<\/a> s02e15 6-\u0433\u043e \u0430\u043f\u0440\u0435\u043b\u044f \u0441\u0430\u043c\u044b\u0435 \u0436\u0430\u0440\u043a\u0438\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u043b\u0438, \u043a\u0430\u043a \u0432\u0441\u0435\u0433\u0434\u0430, \u0432\u043e\u043a\u0440\u0443\u0433 MVCC \u0438 VACUUM, \u043f\u0435\u0440\u0435\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f 32-\u0431\u0438\u0442\u043d\u044b\u0445 \u0441\u0447\u0451\u0442\u0447\u0438\u043a\u043e\u0432 XID.<\/p>\n<p>  \u041d\u0430 50-\u0439 \u043c\u0438\u043d\u0443\u0442\u0435 \u043e\u0431\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u044f 10 \u043d\u0435\u043d\u0430\u0432\u0438\u0441\u0442\u043d\u044b\u0445 \u0432\u0435\u0449\u0435\u0439 <i>\u0410\u043d\u0434\u0440\u0435\u0439 \u0417\u0443\u0431\u043a\u043e\u0432<\/i> \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u043b \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043b \u043e <a href=\"https:\/\/github.com\/zubkov-andrei\/pg_profile\">pg_profile<\/a> (\u0434\u043e <a href=\"https:\/\/postgrespro.ru\/docs\/postgrespro\/13\/pgpro-pwr\">pgpro_pwr<\/a> \u0440\u0435\u0447\u044c \u043e\u043f\u044f\u0442\u044c \u043d\u0435 \u0434\u043e\u0448\u043b\u0430, \u0433\u043e\u0432\u043e\u0440\u0438\u043b\u0438 \u0434\u0430\u0436\u0435 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0432\u0435\u0440\u0441\u0442\u0430\u0442\u044c \u0432 3-\u0439 \u0441\u0435\u0440\u0438\u0438) \u0438 \u043e \u0441\u0432\u043e\u0451\u043c \u043f\u0430\u0442\u0447\u0435 <a href=\"https:\/\/commitfest.postgresql.org\/33\/3048\/\">pg_stat_statements: Track statement entry timestamp<\/a> (\u0440\u043e\u0432\u043d\u043e 1:00 \u0437\u0430\u043f\u0438\u0441\u0438).<\/p>\n<p>  \u0412\u0442\u043e\u0440\u043d\u0438\u043a 20-\u0433\u043e \u0430\u043f\u0440\u0435\u043b\u044f \u043d\u0430\u0437\u044b\u0432\u0430\u043b\u0441\u044f <a href=\"https:\/\/www.youtube.com\/watch?v=LRrucVOZybs\">\u041a\u0430\u043a \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u0442\u0438\u043f \u043a\u043e\u043b\u043e\u043d\u043a\u0438 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 PostgreSQL \u0441 1 \u043c\u043b\u0440\u0434 \u0441\u0442\u0440\u043e\u043a \u0431\u0435\u0437 \u0434\u0430\u0443\u043d\u0442\u0430\u0439\u043c\u0430?<\/a>. \u0414\u0432\u0430 \u0440\u0430\u0437\u043d\u044b\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u2014 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u043a\u043e\u043b\u043e\u043d\u043a\u0438 \u0438 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b.<\/p>\n<p>  \u0410 \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435\u0434\u0430\u0432\u043d\u0438\u0439 \u2014 4-\u0433\u043e \u043c\u0430\u044f \u2014 <a href=\"https:\/\/www.youtube.com\/watch?v=zCV0ffEmpTI&amp;t=127s\">\u043e \u0440\u0430\u0437\u043d\u043e\u043c<\/a>, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043e WAL-G vs. pgBackRest, \u043e\u0431 \u0430\u043c\u0430\u0437\u043e\u043d\u043e\u0432\u0441\u043a\u0438\u0445 \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u0430\u0445 \u043d\u0430 ARM, \u043e \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0447\u0443\u0442\u044c \u043d\u0438\u0436\u0435. \u0421\u043f\u0438\u0441\u043e\u043a \u0442\u0435\u043c \u043b\u0435\u0436\u0438\u0442 <a href=\"https:\/\/docs.google.com\/document\/d\/1Iqr8iqTTOVhMuRMm5DD3_ubctSv3SzPaJXxmUChqgT8\/edit#heading=h.l1lf2tbqr85r\">\u0432 \u0444\u0430\u0439\u043b\u0435<\/a>. <\/p>\n<p>  <\/p>\n<h3>\u041e\u0431\u043b\u0430\u043a\u0430 \u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b<\/h3>\n<p>  <b><a href=\"https:\/\/akorotkov.github.io\/blog\/2021\/04\/30\/arm\/?fbclid=IwAR3LZWgrzqFCMtZXOm6ZxxuqD58hDNB8bfCy_Eaj5sT2WkgcjLEblX9_VVA\">Dramatical Effect of LSE Instructions for PostgreSQL on Graviton2 Instances<\/a><\/b><\/p>\n<p>  <i>\u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440 \u041a\u043e\u0440\u043e\u0442\u043a\u043e\u0432<\/i> \u0432 <a href=\"https:\/\/akorotkov.github.io\/blog\/archives\/\">\u0441\u0432\u043e\u0451\u043c \u0431\u043b\u043e\u0433\u0435<\/a> \u043f\u0438\u0448\u0435\u0442 \u043e\u0431 \u043e\u043f\u044b\u0442\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043d\u043e\u0432\u0435\u0439\u0448\u0438\u043c\u0438 \u043e\u0431\u043b\u0430\u043a\u0430\u043c\u0438 \u2014 \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u044b <a href=\"https:\/\/aws.amazon.com\/ru\/ec2\/graviton\/\">Graviton2<\/a> \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u043d\u0430 \u0430\u043c\u0430\u0437\u043e\u043d\u043e\u0432\u0441\u043a\u0438\u0445 ARM-\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430\u0445. \u041d\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0437\u0430 \u043c\u043e\u0434\u043e\u0439 \u0440\u0430\u0441\u043f\u043b\u0430\u0447\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u2014 \u0443 ARM \u0435\u0441\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430 (\u043f\u043e \u043c\u043d\u0435\u043d\u0438\u044e \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440\u0430 \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u043d\u0438\u043c\u0438 \u0441\u043a\u043e\u0440\u0435\u0435 \u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u0442 <a href=\"https:\/\/www.postgresql.org\/message-id\/CAPpHfdsKrh7c7P8-5eG-qW3VQobybbwqH%3DgL5Ck%2BdOES-gBbFg%40mail.gmail.com\">\u0440\u0430\u0431\u043e\u0442\u0443 \u0441 IBM Power<\/a>).<\/p>\n<p>  \u041a\u043e\u043c\u0430\u043d\u0434\u044b <a href=\"https:\/\/en.wikichip.org\/wiki\/arm\/armv8.1\">LSE (Large System Extensions)<\/a>, \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u0441 \u0432\u0435\u0440\u0441\u0438\u0438 8.1, \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u0441\u043a\u043e\u0440\u044f\u044e\u0442 \u0440\u0430\u0431\u043e\u0442\u0443. \u0412\u043e\u0442 <a href=\"https:\/\/mysqlonarm.github.io\/ARM-LSE-and-MySQL\/\">\u0437\u0434\u0435\u0441\u044c<\/a> \u044d\u0442\u043e \u0440\u0430\u0437\u044a\u044f\u0441\u043d\u044f\u044e\u0442 \u0441 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u044f\u043c\u0438, \u0438\u0441\u043f\u044b\u0442\u044b\u0432\u0430\u044f MySQL \u043d\u0430 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u0445 \u0438 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u0445 LSE. \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440 \u0436\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u043a\u043e\u043b\u043e\u0441\u0441\u0430\u043b\u044c\u043d\u044b\u0439 \u0432\u044b\u0438\u0433\u0440\u044b\u0448 \u043d\u0430 pgbench, \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0432 PostgreSQL 14 \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 LSE. \u041d\u043e \u044d\u0442\u043e \u043a\u0430\u0441\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0430\u043c\u0430\u0437\u043e\u043d\u043e\u0432\u0441\u043a\u0438\u0445 ARM \u2014 AWR Graviton2. Apple M1 \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c (\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0432 \u044d\u0442\u0438\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430\u0445 \u0435\u0441\u0442\u044c \u043a\u0430\u043a\u0430\u044f-\u0442\u043e \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044f\u044f \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f), \u0430 \u043d\u0430 \u043a\u0438\u0442\u0430\u0439\u0441\u043a\u0438\u0445 <a href=\"https:\/\/www.huawei.com\/uz\/news\/uz\/2019\/huawei-unveils-highest-performance-arm-based-cpu\">Kunpeng 920<\/a> \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0434\u0430\u0436\u0435 \u0443\u0445\u0443\u0434\u0448\u0438\u043b\u0438\u0441\u044c.<\/p>\n<p>  <\/p>\n<h3>\u0427\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c<\/h3>\n<p>  <b><a href=\"https:\/\/www.keithf4.com\/managing-transaction-id-exhaustion-wraparound-in-postgresql\/\">Managing Transaction ID Exhaustion (Wraparound) in PostgreSQL<\/a><\/b><\/p>\n<p>  <i>\u041a\u0438\u0442 \u0424\u0438\u0441\u043a\u0435<\/i> (Keith Fiske, Crunchy Data) \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e \u043f\u0438\u0448\u0435\u0442 \u0432 \u0441\u0432\u043e\u0451\u043c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u043c \u0431\u043b\u043e\u0433\u0435 <a href=\"https:\/\/www.keithf4.com\/\">Keith&#8217;s Ramblings<\/a> \u043e \u0432\u0430\u043a\u0443\u0443\u043c\u0435, \u0440\u0430\u0441\u043f\u0443\u0445\u0448\u0438\u0445 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u0445 \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0432\u0430\u0436\u043d\u0435\u0439\u0448\u0438\u0445 \u0434\u043b\u044f \u0432\u0434\u0443\u043c\u0447\u0438\u0432\u043e\u0433\u043e \u043f\u043e\u0441\u0442\u0433\u0440\u0435\u0441\u0438\u0441\u0442\u0430 \u0432\u0435\u0449\u0430\u0445.<\/p>\n<p>  \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0435\u0441\u0442\u044c \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0435 SQL-\u0437\u0430\u043f\u0440\u043e\u0441\u044b, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0435 <a href=\"https:\/\/postgrespro.ru\/docs\/postgresql\/13\/runtime-config-autovacuum\">autovacuum_freeze_max_age<\/a> \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0432\u043d\u044f\u0442\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0435\u043c \u0441 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u043c\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u043c\u0438, \u0442\u0430\u043a \u043a\u0430\u043a <code>vacuumdb --all --freeze --jobs=2 --echo --analyze<\/code> \u0432\u0441\u0435\u0433\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432\u043e \u043c\u043d\u043e\u0433\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0440\u0430\u0434\u0438\u043a\u0430\u043b\u044c\u043d\u0430\u044f \u043c\u0435\u0440\u0430. \u0415\u0441\u043b\u0438 \u043d\u0435\u0434\u043e\u0432\u0430\u043a\u0443\u0443\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0442\u0430\u0431\u043b\u0438\u0446 \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e, \u0442\u043e \u041a\u0438\u0442 \u0441\u043e\u0432\u0435\u0442\u0443\u0435\u0442 \u0432\u0430\u043a\u0443\u0443\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 \u0431\u0430\u0442\u0447\u0430\u0445 \u043d\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u0441\u043e\u0442\u043d\u0438 \u0432 \u043a\u0430\u0436\u0434\u043e\u043c. \u0421\u0430\u043c \u043e\u043d \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0438\u0442\u0430\u0435\u0442 \u0434\u0435\u0440\u0436\u0430\u0442\u044c max XID &lt; to 50% <code>autovacuum_freeze_max_age<\/code>, \u043b\u0443\u0447\u0448\u0435 30-40%.<\/p>\n<p>  \u041e\u043d \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u044e \u0438 \u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 \u0430\u0432\u0442\u043e\u0432\u0430\u043a\u0443\u0443\u043c\u0430: <b><a href=\"https:\/\/www.keithf4.com\/per-table-autovacuum-tuning\/\">Per-Table Autovacuum Tuning<\/a><\/b>. \u041d\u043e \u0434\u0430\u0436\u0435 \u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0432 \u0430\u0432\u0442\u043e\u0432\u0430\u043a\u0443\u0443\u043c, \u0441\u0442\u043e\u0438\u0442 \u0441 \u043d\u0435 \u043c\u0435\u043d\u044c\u0448\u0435\u0439 \u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u043e\u0441\u0442\u044c\u044e \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u0442\u044c \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044e. \u00ab\u0420\u0438\u0441\u043a \u043d\u0435 \u0432\u0435\u043b\u0438\u043a, \u043d\u043e \u0441\u0442\u0430\u0432\u043a\u0430 \u0432\u044b\u0441\u043e\u043a\u0430\u00bb, \u043a\u0430\u043a \u0433\u043e\u0432\u043e\u0440\u0438\u043b\u0438 \u043d\u0430\u0448\u0438 \u0434\u0435\u0434\u044b.<\/p>\n<p>  \u041d\u0435 \u0443\u0434\u0435\u0440\u0436\u0443\u0441\u044c \u043e\u0442 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 <a href=\"https:\/\/www.keithf4.com\/projects\/\">\u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u041a\u0438\u0442\u0430<\/a> (\u0438\u043b\u0438 \u0441 \u0435\u0433\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c \u0443\u0447\u0430\u0441\u0442\u0438\u0435\u043c):<br \/>  <a href=\"https:\/\/github.com\/pgpartman\/pg_partman\">pg_partman<\/a> \u2013 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u0441 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 \u0441\u0435\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0438 serial id;<br \/>  <a href=\"https:\/\/github.com\/omniti-labs\/pg_extractor\">pg_extractor<\/a> \u2013 \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u044b\u0439 \u0444\u0438\u043b\u044c\u0442\u0440 \u0434\u0430\u043c\u043f\u0430;<br \/>  <a href=\"https:\/\/github.com\/keithf4\/pg_bloat_check\">pg_bloat_check<\/a> \u2013 \u0441\u043a\u0440\u0438\u043f\u0442 \u0434\u043b\u044f \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u0442\u0430\u0431\u043b\u0438\u0446 \u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432;<br \/>  <a href=\"https:\/\/github.com\/omniti-labs\/mimeo\">mimeo<\/a> \u2013 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 PostgreSQL \u0434\u043b\u044f \u043f\u043e\u0442\u0430\u0431\u043b\u0438\u0447\u043d\u043e\u0439 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438;<br \/>  <a href=\"https:\/\/github.com\/omniti-labs\/pg_jobmon\">pg_jobmon<\/a> \u2013 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u0430\u0432\u0442\u043e\u043d\u043e\u043c\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439.<\/p>\n<p>  <b><a href=\"https:\/\/blog.crunchydata.com\/blog\/postgres-is-out-of-disk-and-how-to-recover-the-dos-and-donts\">Postgres is Out of Disk and How to Recover: The Dos and Don&#8217;ts<\/a><\/b><\/p>\n<p>  \u0421\u0442\u0430\u0442\u044c\u044f <i>\u042d\u043b\u0438\u0437\u0430\u0431\u0435\u0442 \u041a\u0440\u0438\u0441\u0442\u0438\u043d\u0441\u0435\u043d<\/i> (Elizabeth Christensen) \u0441 \u0443\u0447\u0430\u0441\u0442\u0438\u0435\u043c <i>\u0414\u044d\u0432\u0438\u0434\u0430 \u041a\u0440\u0438\u0441\u0442\u0438\u043d\u0441\u0435\u043d\u0430<\/i> (David Christensen), <i>\u0414\u0436\u043e\u043d\u0430\u0442\u0430\u043d\u0430 \u041a\u0430\u0446\u0430<\/i> (Jonathan Katz) \u0438 <i>\u0421\u0442\u0438\u0432\u0435\u043d\u0430 \u0424\u0440\u043e\u0441\u0442\u0430<\/i> (Stephen Frost) \u2014 \u0432\u0441\u0435 \u0438\u0437 Crunchy Data. \u041f\u043e\u0447\u0435\u043c\u0443 \u0437\u0430\u0431\u0438\u043b\u0441\u044f \u0434\u0438\u0441\u043a, \u0447\u0442\u043e \u041d\u0415 \u0434\u0435\u043b\u0430\u0442\u044c, \u0438 \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c.<br \/>  \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u043f\u0440\u0438\u0447\u0438\u043d\u044b:<\/p>\n<ul>\n<li>\u043e\u0442\u043a\u0430\u0437\u0430\u043b\u0430 <code>archive_command<\/code> \u0438 WAL \u043d\u0430\u0447\u0430\u043b \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0434\u0438\u0441\u043a;<\/li>\n<li>\u043e\u0441\u0442\u0430\u043b\u0438\u0441\u044c \u0441\u043b\u043e\u0442\u044b \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u0443 \u0441\u0442\u0435\u043d\u0434\u0431\u0430\u044f, \u0430 \u0440\u0435\u043f\u043b\u0438\u043a\u0430 \u0441\u0442\u0430\u043b\u0430 \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430: \u043e\u043f\u044f\u0442\u044c \u0436\u0435 WAL \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0434\u0438\u0441\u043a;<\/li>\n<li>\u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u0431\u0430\u0437\u0435 \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043a\u043e \u0431\u043e\u043b\u044c\u0448\u0438\u0435, \u0447\u0442\u043e \u0433\u0435\u043d\u0435\u0440\u044f\u0449\u0438\u0439\u0441\u044f WAL \u0441\u044a\u0435\u0434\u0430\u0435\u0442 \u0432\u0441\u0451 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0435 \u0434\u0438\u0441\u043a\u043e\u0432\u043e\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e;<\/li>\n<li>\u043f\u0440\u043e\u0441\u0442\u043e-\u043d\u0430\u043f\u0440\u043e\u0441\u0442\u043e \u0434\u0430\u043d\u043d\u044b\u0445 \u0431\u044b\u043b\u043e \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043c\u043d\u043e\u0433\u043e, \u0430 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u0438 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f \u043d\u0435 \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438.<\/li>\n<\/ul>\n<p>  \u0427\u0442\u043e <b>\u041d\u0415\u041b\u042c\u0417\u042f<\/b> \u0434\u0435\u043b\u0430\u0442\u044c:<br \/>  \u0443\u0434\u0430\u043b\u044f\u0442\u044c WAL-\u0444\u0430\u0439\u043b\u044b \u043d\u0435\u043b\u044c\u0437\u044f \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438;<\/p>\n<ul>\n<li>\u043d\u0435 \u0434\u0430\u0439\u0442\u0435 \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u044f\u0441\u044c \u0438\u0437 \u0431\u044d\u043a\u0430\u043f\u0430;<\/li>\n<li>\u041d\u0438\u043a\u0430\u043a\u043e\u0433\u043e <code>resize<\/code>.<\/li>\n<\/ul>\n<p>  \u0427\u0442\u043e \u043d\u0430\u0434\u043e \u0434\u0435\u043b\u0430\u0442\u044c:<\/p>\n<ul>\n<li>\u0441\u0434\u0435\u043b\u0430\u0439\u0442\u0435 \u0441\u0440\u0430\u0437\u0443 \u0431\u044d\u043a\u0430\u043f \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b;<\/li>\n<li>\u0441\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u043d\u043e\u0432\u044b\u0439 \u0438\u043d\u0441\u0442\u0430\u043d\u0441 (\u0438\u043b\u0438 \u0445\u043e\u0442\u044f \u0431\u044b \u043d\u043e\u0432\u044b\u0439 \u0442\u043e\u043c) \u0441 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u044b\u043c \u043c\u0435\u0441\u0442\u043e\u043c, \u0443\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e Postgres \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u0438 \u0441\u0434\u0435\u043b\u0430\u0439\u0442\u0435 \u0431\u044d\u043a\u0430\u043f \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 PostgreSQL (\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 <code>pg_wal<\/code> \u0438 \u043d\u0435\u0434\u0435\u0444\u043e\u043b\u0442\u043d\u044b\u0435 \u0442\u0430\u0431\u043b\u0438\u0447\u043d\u044b\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430), \u0447\u0442\u043e\u0431\u044b \u0432\u0430\u043c \u0431\u044b\u043b\u043e \u043a\u0443\u0434\u0430 \u0432\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f, \u0435\u0441\u043b\u0438 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f;<\/li>\n<li>\u043a\u043e\u0433\u0434\u0430 \u0431\u0430\u0437\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0430, \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u043b\u043e\u0433\u0438, \u0440\u0430\u0437\u0431\u0435\u0440\u0438\u0442\u0435\u0441\u044c, \u0438\u0437-\u0437\u0430 \u0447\u0435\u0433\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0438 \u043f\u043e\u0447\u0438\u043d\u0438\u0442\u0435 \u043f\u043e\u043b\u043e\u043c\u043a\u0438, \u0435\u0441\u043b\u0438 \u044d\u0442\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e.<\/li>\n<\/ul>\n<p>  \u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u043a\u0430\u043a \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u0443\u0435\u0442\u0441\u044f WAL, \u043e\u0431 \u043f\u043e\u043f\u043e\u0440\u0447\u0435\u043d\u043d\u044b\u0445 \u0430\u0440\u0445\u0438\u0432\u0430\u0445, \u043a\u043e\u0435-\u0447\u0442\u043e \u043e pgBackRest, \u0430 \u0435\u0449\u0451 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c <b><a href=\"https:\/\/blog.crunchydata.com\/blog\/how-to-recover-when-postgresql-is-missing-a-wal-file\">How to Recover When PostgreSQL is Missing a WAL File<\/a><\/b>.<\/p>\n<p>  <b>\u041a\u0441\u0442\u0430\u0442\u0438, \u043e WAL<\/b>. \u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u043e\u0432\u0430\u0442\u044c \u0445\u043e\u0440\u043e\u0448\u0443\u044e \u0441\u0442\u0430\u0442\u044c\u044e \u0430\u043d\u0433\u043b\u043e\u044f\u0437\u044b\u0447\u043d\u044b\u043c \u043a\u043e\u043b\u043b\u0435\u0433\u0430\u043c, \u0442\u043e \u0432 <a href=\"https:\/\/postgrespro.com\/blog\">\u0431\u043b\u043e\u0433\u0435<\/a> Postgre Pofessional \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u043f\u0435\u0440\u0435\u0432\u043e\u0434 3-\u0439 \u0447\u0430\u0441\u0442\u0438 \u0441\u0435\u0440\u0438\u0438 <i>\u0415\u0433\u043e\u0440\u0430 \u0420\u043e\u0433\u043e\u0432\u0430<\/i> \u043e WAL: <b><a href=\"https:\/\/postgrespro.com\/blog\/pgsql\/5967965\">WAL in PostgreSQL: 3. Checkpoint<\/a><\/b>. \u041e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0435\u0451 <a href=\"https:\/\/habr.com\/ru\/company\/postgrespro\/blog\/460423\/\">\u0437\u0434\u0435\u0441\u044c<\/a>, <i>en<\/i>-\u043d\u0430\u0447\u0430\u043b\u043e-\u0441\u0435\u0440\u0438\u0438 <a href=\"https:\/\/postgrespro.com\/blog\/pgsql\/5967951\">\u0437\u0434\u0435\u0441\u044c<\/a>, \u0430 <i>ru<\/i>-\u043d\u0430\u0447\u0430\u043b\u043e \u2014 <a href=\"https:\/\/habr.com\/ru\/company\/postgrespro\/blog\/458186\/\">\u0437\u0434\u0435\u0441\u044c<\/a>.<\/p>\n<p>  <\/p>\n<h3>\u0418\u0437 \u0431\u043b\u043e\u0433\u0430 \u0411\u0420\u042e\u0421\u0410 \u041c\u041e\u041c\u0414\u0416\u0410\u041d\u0410<\/h3>\n<p>  (\u0442\u043e \u0435\u0441\u0442\u044c <a href=\"https:\/\/momjian.us\/main\/blogs\/pgblog\/2021.html\">\u043e\u0442\u0441\u044e\u0434\u0430<\/a>)<\/p>\n<p>  <b><a href=\"https:\/\/momjian.us\/main\/blogs\/pgblog\/2021.html#May_3_2021\">Jsonb Multi-Column Type Casting<\/a><\/b><\/p>\n<p>  \u0411\u0440\u044e\u0441 \u0434\u0435\u043b\u0438\u0442\u0441\u044f \u0440\u0430\u0434\u043e\u0441\u0442\u044c\u044e, \u0447\u0442\u043e <a href=\"https:\/\/postgrespro.ru\/docs\/postgrespro\/13\/functions-json\">\u0435\u0441\u0442\u044c<\/a> <code>jsonb_to_record()<\/code> \u0438 \u043c\u043e\u0436\u043d\u043e \u0431\u0435\u0437 \u0432\u0441\u044f\u043a\u0438\u0445 \u0434\u0432\u043e\u0439\u043d\u044b\u0445 \u0434\u0432\u043e\u0435\u0442\u043e\u0447\u0438\u0439 \u0441\u0440\u0430\u0437\u0443 \u0441\u043a\u0430\u0437\u0430\u0442\u044c:  <\/p>\n<pre><code class=\"pgsql\">SELECT a, b, pg_typeof(a) AS a_type, pg_typeof(b) AS b_type FROM test, jsonb_to_record(test.x) AS x (a TEXT, b INTEGER);<\/code><\/pre>\n<p>  (\u0410 \u0432\u0435\u0434\u044c \u2014 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043e\u0442 \u0441\u0435\u0431\u044f \u2014 \u0435\u0441\u0442\u044c <a href=\"https:\/\/postgrespro.ru\/docs\/postgrespro\/13\/functions-json\">\u0435\u0449\u0451 \u0438<\/a> <code>jsonb_to_recordset(jsonb)<\/code>).<\/p>\n<p>  \u0411\u0440\u044e\u0441 \u043e\u0431\u0440\u0430\u0449\u0430\u0435\u0442 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0442\u0430\u043a\u0438\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432. \u0415\u0441\u043b\u0438 \u0441\u043a\u0430\u0437\u0430\u0442\u044c  <\/p>\n<pre><code class=\"pgsql\">SELECT x.a, b, pg_typeof(a) AS a_type, pg_typeof(b) AS b_type FROM test, jsonb_to_record(test.x) AS x (a TEXT, b INTEGER) WHERE b &lt;= 4;<\/code><\/pre>\n<p>  \u0442\u043e \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c, \u0432\u0435\u0434\u044c <code>b<\/code> \u0443\u0436\u0435 <code>integer<\/code> \u043f\u043e\u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u0437\u0430\u043f\u0440\u043e\u0441 \u0443\u0436\u0435 \u0441\u043e\u0437\u0434\u0430\u043b \u0442\u0430\u0431\u043b\u0438\u0447\u043a\u0443 <code>x<\/code> \u0441 \u043e\u0431\u043b\u0430\u0441\u0442\u044c\u044e \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u043d\u0443\u0442\u0440\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u0430, \u0433\u0434\u0435 \u0442\u0438\u043f\u044b \u0443\u0436\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u044b. \u041d\u0435\u043c\u043d\u043e\u0433\u043e\u0441\u043b\u043e\u0432\u043d\u044b\u0439 (\u043a\u0430\u043a \u043e\u0431\u044b\u0447\u043d\u043e \u0432 \u0441\u0432\u043e\u0451\u043c \u0431\u043b\u043e\u0433\u0435) \u0411\u0440\u044e\u0441 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u0434\u0435\u0442\u0430\u043b\u044f\u043c\u0438 \u0432 \u0442\u0440\u0435\u0434\u0430\u0445 <a href=\"https:\/\/www.postgresql.org\/message-id\/flat\/152571684246.9460.18059951267371255159%40wrigleys.postgresql.org\">json_to_record Example<\/a> \u0438 <a href=\"https:\/\/www.postgresql.org\/message-id\/flat\/C3E7372D-153D-4276-8DB5-0D232ECD91E4%40gmail.com\">Abnormal JSON query performance<\/a>. <\/p>\n<p>  <b><a href=\"https:\/\/momjian.us\/main\/blogs\/pgblog\/2021.html#April_21_2021\">Oracle vs. PostgreSQL<\/a><\/b><\/p>\n<p>  \u0411\u0440\u044e\u0441 \u0440\u0435\u0448\u0438\u043b \u043e\u0446\u0435\u043d\u0438\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u0443\u044e \u043f\u043e\u043b\u043d\u043e\u0442\u0443 \u043e\u0431\u0435\u0438\u0445 \u0421\u0423\u0411\u0414 \u0432 %, \u0432 \u043e\u0442\u0432\u0435\u0442 \u043d\u0430 \u0447\u044c\u0451-\u0442\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u00abPostgres \u0438 Oracle \u044d\u0442\u043e \u043a\u0430\u043a \u0440\u0435\u0437\u0438\u043d\u043e\u0432\u0430\u044f \u0443\u0442\u043e\u0447\u043a\u0430 \u043f\u0440\u043e\u0442\u0438\u0432 \u0442\u0430\u043d\u043a\u0435\u0440\u0430 \u0432\u043e\u0434\u043e\u0438\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u0435\u043c 300 \u0442\u044b\u0441. \u0442\u043e\u043d\u043d\u00bb. \u041e\u043d \u0441\u0447\u0438\u0442\u0430\u0435\u0442:<br \/>  \u00ab\u0411\u043e\u043b\u0435\u0435 \u0440\u0435\u0430\u043b\u0438\u0441\u0442\u0438\u0447\u043d\u043e\u0439 \u0431\u044b\u043b\u0430 \u0431\u044b \u043e\u0446\u0435\u043d\u043a\u0430 \u0432 80-90%, \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0434\u043b\u044f \u0432\u0430\u0441 \u0432\u0430\u0436\u043d\u0435\u0439. \u041d\u043e \u043c\u043e\u0436\u043d\u043e \u0431\u044b \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u0438 \u0442\u043e\u043c, \u0447\u0442\u043e \u0432 Postgres \u0435\u0441\u0442\u044c, \u0430 \u0432 Oracle \u2014 \u043d\u0435\u0442. \u0421 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u0430\u0434\u043c\u0438\u043d\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f, \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c, \u0438 \u043c\u0435\u043d\u044c\u0448\u0435 80%, \u0430 \u0432\u043e\u0442 \u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u0432 Oracle \u043d\u0435\u0442 \u043c\u043d\u043e\u0433\u043e\u0433\u043e, \u0438 \u043e\u0446\u0435\u043d\u043a\u0430 \u043f\u0435\u0440\u0435\u0432\u0430\u043b\u0438\u0442 \u0437\u0430 100%.\u00bb<\/p>\n<p>  <b><a href=\"https:\/\/momjian.us\/main\/blogs\/pgblog\/2021.html#April_19_2021\">Challenging Assumptions<\/a><\/b><\/p>\n<p>  \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435, \u043d\u0435\u043a\u043e\u0433\u0434\u0430 \u0441\u043f\u0440\u0430\u0432\u0435\u0434\u043b\u0438\u0432\u044b\u0435 \u0434\u043e\u043f\u0443\u0449\u0435\u043d\u0438\u044f \u0442\u0435\u043f\u0435\u0440\u044c \u0441\u043e\u043c\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b:<\/p>\n<ul>\n<li>\u043f\u043b\u0430\u0442\u043d\u044b\u0439 \u0441\u043e\u0444\u0442 \u0432\u0441\u0435\u0433\u0434\u0430 \u043b\u0443\u0447\u0448\u0435 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e\u0433\u043e;<\/li>\n<li>\u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 \u043a\u043e\u0434 \u043d\u0435 \u0441\u0442\u043e\u043b\u044c \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u0435\u043d, \u0442\u0430\u043a \u043a\u0430\u043a \u0441\u043b\u0430\u0431\u044b\u0435 \u043c\u0435\u0441\u0442\u0430 \u0432\u0438\u0434\u043d\u044b;<\/li>\n<li>\u0441\u0435\u0440\u044c\u0451\u0437\u043d\u044b\u0435 \u043b\u044e\u0434\u0438 \u0441\u043e\u0444\u0442 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u043a\u043e\u0434\u043e\u043c \u043d\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0442;<\/li>\n<li>Oracle \u043b\u0443\u0447\u0448\u0430\u044f \u0421\u0423\u0411\u0414;<\/li>\n<li>\u0441\u043e \u0437\u043d\u0430\u043d\u0438\u0435\u043c Oracle \u0431\u0435\u0437 \u0440\u0430\u0431\u043e\u0442\u044b \u044f \u043d\u0435 \u043e\u0441\u0442\u0430\u043d\u0443\u0441\u044c;<\/li>\n<\/ul>\n<p>  <b><a href=\"https:\/\/momjian.us\/main\/blogs\/pgblog\/2021.html#April_23_2021\">\u041a\u0442\u043e \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0434\u044b\u0440\u044b \u0438 \u043b\u0430\u0442\u0430\u0435\u0442 \u0449\u0435\u043b\u0438<\/a><\/b> (\u0432 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u0435 <b>Database Software Bundles<\/b>)<\/p>\n<p>  \u00ab\u041f\u0440\u043e\u0435\u043a\u0442 Postgres \u0434\u0430\u043b \u043c\u0438\u0440\u0443 \u0432\u0435\u043b\u0438\u043a\u043e\u043b\u0435\u043f\u043d\u0443\u044e, \u043f\u043e\u043b\u043d\u043e\u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u0443\u044e \u0421\u0423\u0411\u0414. \u041d\u043e \u043a\u043e\u0433\u0434\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0434\u0443\u043c\u0430\u0435\u0442 \u043e \u0431\u044d\u043a\u0430\u043f\u0435, \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0435, \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438, \u0435\u043c\u0443 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0443, \u0442\u0430\u043a \u043a\u0430\u043a \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 Postgres \u043c\u043e\u0433\u0443\u0442 \u043d\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0442\u044c \u0441 \u0435\u0433\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u043d\u043e\u0441\u0442\u044f\u043c\u0438. \u0418\u043d\u043e\u0433\u0434\u0430 \u0431\u0440\u0435\u0448\u0438 \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u044e\u0442 \u043f\u0440\u043e\u0435\u043a\u0442\u044b \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u043a\u043e\u0434\u043e\u043c, \u043d\u043e \u0432 \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u0440\u0435\u0448\u0430\u044e\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u043a\u043e\u043c\u043c\u0435\u0440\u0447\u0435\u0441\u043a\u0438\u0435 Postgres-\u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438: <b>Cybertec, edb, HighGo, Ongres, Postgres Pro, sra oss<\/b> \u0438 \u0434\u0440\u0443\u0433\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u0441\u0435\u0440\u0432\u0438\u0441\u044b \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u043c\u0438\u043b\u0438 \u0434\u043b\u044f \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439.\u00bb<\/p>\n<p>  \u0422\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0433\u043b\u044f\u043d\u0443\u0442\u044c \u0432<\/p>\n<p>  <b><a href=\"https:\/\/momjian.us\/main\/blogs\/pgblog\/2021.html#April_12_2021\">Shared Memory Sizing<\/a><\/b><br \/>  \u0438\u043b\u0438, \u0441\u043a\u0430\u0436\u0435\u043c, \u0432<br \/>  <b><a href=\"https:\/\/momjian.us\/main\/blogs\/pgblog\/2021.html#April_9_2021\">Replica Scaling by the Numbers<\/a><\/b><\/p>\n<p>  <\/p>\n<h3>\u0418\u0418<\/h3>\n<p>  <b><a href=\"https:\/\/www.enterprisedb.com\/blog\/regression-analysis-postgresql-tensorflow-part-1-getting-started\">Regression Analysis in PostgreSQL with Tensorflow<\/a><\/b><\/p>\n<p>  <i>\u0414\u0435\u0439\u0432 \u041f\u0435\u0439\u0434\u0436<\/i> (Dave Page, \u0432\u0438\u0446\u0435-\u043f\u0440\u0435\u0437\u0438\u0434\u0435\u043d\u0442 \u0438 \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u043e\u0440 EDB) \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442 \u0441\u0435\u0440\u0438\u044e, \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u0443\u044e \u0418\u0418 \u0438 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u043c\u0435\u0442\u043e\u0434\u0430\u043c \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0434\u0430\u043d\u043d\u044b\u0445. \u0418\u0437 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e: \u0432\u044b\u0448\u043b\u0438 \u0434\u0432\u0435 \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u044b\u0435 \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0438\u043e\u043d\u043d\u043e\u043c\u0443 \u0430\u043d\u0430\u043b\u0438\u0437\u0443, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u0441\u043a\u043e\u0440\u044f\u044e\u0442 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <a href=\"https:\/\/www.tensorflow.org\/\">Tensorflow<\/a>. \u0412 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0445 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u0445 \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u043c\u043d\u043e\u0433\u043e \u043b\u0430\u0441\u043a\u0430\u044e\u0449\u0438\u0445 \u0441\u043b\u0443\u0445 \u043f\u0438\u0442\u043e\u043d\u0438\u0441\u0442\u0430 \u0441\u043b\u043e\u0432: <code>pandas, numpy, matplotlib<\/code> \u0438 <code>seaborn<\/code>. \u041f\u043e\u0434\u0447\u0435\u0440\u043a\u043d\u0451\u043c, \u0447\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 PostgreSQL <b>plpython3u<\/b>, \u0430 \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u043d\u0435\u0448\u043d\u0438\u0435 \u043f\u043e \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044e \u043a \u0431\u0430\u0437\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438.<\/p>\n<p>  \u0412\u043e <a href=\"https:\/\/www.enterprisedb.com\/blog\/regression-analysis-postgresql-tensorflow-part-2-data-pre-processing\">\u0432\u0442\u043e\u0440\u043e\u0439 \u0447\u0430\u0441\u0442\u0438<\/a> \u0434\u0435\u043b\u043e \u0434\u043e\u0445\u043e\u0434\u0438\u0442 \u0434\u043e \u043f\u0440\u0435\u0434-\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0439 \u0443 \u043f\u0435\u0434\u0430\u0433\u043e\u0433\u043e\u0432 \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u043d\u0430\u0431\u043e\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 <a href=\"https:\/\/www.cs.toronto.edu\/~delve\/data\/boston\/bostonDetail.html\">Boston Housing Dataset<\/a> \u2014 \u043f\u043e \u043d\u0438\u043c \u0442\u0440\u0435\u043d\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0443\u0433\u0430\u0434\u044b\u0432\u0430\u0442\u044c \u0446\u0435\u043d\u0443 \u0434\u043e\u043c\u0430 \u0432 \u0411\u043e\u0441\u0442\u043e\u043d\u0435 \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0444\u0430\u043a\u0442\u043e\u0440\u043e\u0432. \u0418\u0437 \u043d\u0430\u0431\u043e\u0440\u0430 \u0432\u044b\u043a\u0438\u0434\u044b\u0432\u0430\u044e\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u0441\u0438\u043b\u044c\u043d\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u044e\u0449\u0438\u0435\u0441\u044f \u043e\u0442 \u043e\u0431\u0449\u0435\u0439 \u043c\u0430\u0441\u0441\u044b, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0437\u0430\u043f\u0443\u0442\u0430\u0442\u044c \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u0443\u044e \u0441\u0435\u0442\u044c \u043f\u0440\u0438 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0438. \u0415\u0449\u0451 \u0441\u043c\u043e\u0442\u0440\u044f\u0442 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0438 \u0441\u0442\u0440\u043e\u044f\u0442 \u043a\u043e\u0440\u0440\u0435\u043b\u044f\u0446\u0438\u0438. \u0422\u0440\u0435\u0442\u044c\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u0435\u0449\u0451 \u043d\u0435 \u0432\u044b\u0448\u043b\u0430. \u041e\u0431\u0435\u0449\u0430\u043d\u043e, \u0447\u0442\u043e \u0432 \u043d\u0435\u0439 \u0443\u0436\u0435 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0434\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u044f\u043c\u0438 2-\u0439 \u0447\u0430\u0441\u0442\u0438, \u0447\u0442\u043e\u0431\u044b \u043e\u0431\u0443\u0447\u0430\u0442\u044c \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u0443\u044e \u0441\u0435\u0442\u044c \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0438\u043e\u043d\u043d\u043e\u043c\u0443 \u0430\u043d\u0430\u043b\u0438\u0437\u0443.<\/p>\n<p>  <\/p>\n<h3>\u0420\u0435\u043b\u0438\u0437\u044b<\/h3>\n<p>  <b><a href=\"https:\/\/www.postgresql.org\/about\/news\/kubegres-is-available-as-open-source-2197\/\">Kubegres<\/a><\/b><\/p>\n<p>  \u041e\u0431\u044b\u0447\u043d\u043e \u0432 \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440\u0435 \u043e PostgreSQL \u0432 Kubernetes \u043d\u0430 \u0442\u0440\u0435\u0442\u044c\u0435\u0439 \u0444\u0440\u0430\u0437\u0435 \u043f\u043e\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u043e\u0442 Crunchy Data \u0438 Zalando. <a href=\"https:\/\/www.kubegres.io\/\">Kubegres<\/a>, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0432\u043a\u043b\u0438\u043d\u0438\u0442\u0441\u044f \u0432 \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440. \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u2014 <i>\u0410\u043b\u0435\u043a\u0441 \u0410\u0440\u0438\u043a\u0430<\/i> (Alex Arica, <a href=\"https:\/\/www.reactive-tech.io\/\">Reactive Tech Limited<\/a>). \u0421\u043e\u0437\u0434\u0430\u0432\u0430\u043b\u0441\u044f Kubegres \u043d\u0430 \u0431\u0430\u0437\u0435 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 <a href=\"https:\/\/book.kubebuilder.io\/\">Kubebuilder<\/a> version 3 (SDK \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 Kubernetes APIs \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c CRD. \u041c\u043e\u0436\u043d\u043e \u0437\u0430\u0431\u0440\u0430\u0442\u044c <a href=\"https:\/\/github.com\/reactive-tech\/kubegres\">\u043e\u0442\u0441\u044e\u0434\u0430<\/a>.<\/p>\n<p>  <b><a href=\"https:\/\/github.com\/hidva\/KuiBaDB\">KuiBaDB<\/a><\/b><\/p>\n<p>  KuiBaDB \u2014 \u044d\u0442\u043e Postgres \u0434\u043b\u044f OLAP, \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u0441 Rust \u0438 \u043c\u043d\u043e\u0433\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c\u044e. \u0423 \u044d\u0442\u043e\u0439 \u0421\u0423\u0411\u0414 \u0435\u0441\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0431\u0430\u0437\u043e\u0432\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c. \u041e\u043d\u0430, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438, \u043d\u043e \u043d\u0435 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438. KuiBaDB \u0441\u043e\u0437\u0434\u0430\u043d \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432, \u0447\u0442\u043e\u0431\u044b \u043e\u043d\u0438 \u043c\u043e\u0433\u043b\u0438 \u0431\u044b\u0441\u0442\u0440\u0435\u043d\u044c\u043a\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043d\u0430 \u043d\u0435\u0439 \u0441\u0432\u043e\u0438 \u0438\u0434\u0435\u0438. \u0412 \u043d\u0435\u0439 \u0435\u0441\u0442\u044c \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u044b\u0439 \u0434\u0432\u0438\u0436\u043e\u043a \u0438 \u043a\u043e\u043b\u043e\u043d\u043e\u0447\u043d\u043e\u0435 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435, \u043e\u043d\u0430 \u043e\u043f\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0438 (catalog-driven).<\/p>\n<p>  <b><a href=\"https:\/\/fluca1978.github.io\/2021\/04\/28\/pgbackrestMultiRepository.html\">pgBackRest 2.33<\/a><\/b><\/p>\n<p>  <a href=\"https:\/\/pgbackrest.org\/release.html#2.33\">\u041f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c<\/a> \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432 \u2014 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438 WAL \u043c\u043e\u0436\u043d\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0440\u0430\u0437\u0443 \u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449.<br \/>  pgBackRest \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0442\u0435\u043f\u0435\u0440\u044c GCS \u2014 Google Cloud Storage.<br \/>  \u041e\u0442\u043d\u044b\u043d\u0435 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0434\u0430\u0442\u044c \u043f\u0443\u0442\u044c \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0441 <code>.\/configure --with-configdir<\/code>. \u0421\u0442\u0430\u043b\u043e \u0443\u0434\u043e\u0431\u043d\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u043d\u0435-Linux \u041e\u0421, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0441 FreeBSD.<br \/>  \u041f\u043e\u044f\u0432\u0438\u043b\u043e\u0441\u044c \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0431\u044d\u043a\u0430\u043f\u0430.<\/p>\n<p>  <b><a href=\"https:\/\/github.com\/postgrespro\/pg_probackup\/releases\/tag\/2.4.15\">pg_probackup 2.4.15<\/a><\/b><\/p>\n<p>  \u0412 <a href=\"https:\/\/github.com\/postgrespro\/pg_probackup\/releases\/tag\/2.4.15\">\u043d\u043e\u0432\u043e\u0439<\/a> \u0432\u0435\u0440\u0441\u0438\u0438 <a href=\"https:\/\/postgrespro.ru\/docs\/postgrespro\/13\/app-pgprobackup\">pg_probackup<\/a> \u043f\u0440\u0438 \u0431\u044d\u043a\u0430\u043f\u0435 \u0432 \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0442\u0430\u0439\u043c\u043b\u0430\u0439\u043d\u043e\u0432, \u0437\u0430 \u0441\u0447\u0451\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u044b <code>TIMELINE_HISTORY<\/code> \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438  (\u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b <i>\u0410\u043b\u0435\u043a\u0441\u0435\u0439 \u0418\u0433\u043d\u0430\u0442\u043e\u0432<\/i>).<\/p>\n<p>  \u041f\u0440\u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u0445 <code>merge<\/code> \u0438 <code>retention merge<\/code> \u0442\u0435\u043f\u0435\u0440\u044c \u0442\u043e\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0444\u043b\u0430\u0433\u0438 <code>--no-validate<\/code> \u0438 <code>--no-sync<\/code>.<\/p>\n<p>  <b><a href=\"https:\/\/www.postgresql.org\/about\/news\/pgmetrics-111-released-2196\/\">pgmetrics 1.11.0<\/a><\/b><\/p>\n<p>  <a href=\"https:\/\/pgmetrics.io\/\">pgmetrics<\/a> \u2014 \u0443\u0442\u0438\u043b\u0438\u0442\u0430 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u043a\u043e\u0434\u043e\u043c \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u0430 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0435\u0433\u043e PostgreSQL, \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u043c\u0430\u044f \u0432 \u0432\u0438\u0434\u0435 \u0435\u0434\u0438\u043d\u043e\u0433\u043e \u0431\u0438\u043d\u0430\u0440\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u0431\u0435\u0437 \u0432\u043d\u0435\u0448\u043d\u0438\u0445 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439. \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u2014 <a href=\"https:\/\/www.rapidloop.com\/\">RapidLoop<\/a>, \u0443 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0435\u0441\u0442\u044c \u0435\u0449\u0451 \u0438 <a href=\"https:\/\/pgdash.io\/\">pgDash<\/a>, \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u0439 pgmetrics \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0443.<\/p>\n<p>  \u041d\u043e\u0432\u043e\u0435 \u0432 \u0432\u0435\u0440\u0441\u0438\u0438:<\/p>\n<ul>\n<li>\u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442 \u0438 \u043f\u0430\u0440\u0441\u0438\u0442 \u043b\u043e\u0433\u0438 \u0438\u0437 AWS RDS \u0438 Aurora, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f CloudWatch;<\/li>\n<li>\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043f\u0443\u043b\u0435\u0440\u0430 Odyssey v1.1;<\/li>\n<li>\u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 Postgres 13;<\/li>\n<li>\u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043c\u0435\u0442\u0440\u0438\u043a AWS RDS;<\/li>\n<li>\u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u0438 \u0434\u043b\u044f ARMv8<\/li>\n<\/ul>\n<p>  \u0421\u043a\u0430\u0447\u0430\u0442\u044c \u043c\u043e\u0436\u043d\u043e <a href=\"https:\/\/github.com\/rapidloop\/pgmetrics\/releases\/tag\/v1.11.0\">\u043e\u0442\u0441\u044e\u0434\u0430<\/a>.<\/p>\n<p>  <b><a href=\"https:\/\/www.postgresql.org\/about\/news\/hypopg-12-is-out-2177\/\">HypoPG 1.2<\/a><\/b><\/p>\n<p>  HypoPG \u2014 \u043e\u0434\u043d\u043e \u0438\u0437 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0439 <i>\u0416\u0443\u043b\u044c\u0435\u043d\u0430 \u0420\u0443\u043e<\/i> (Julien Rouhaud). \u042d\u0442\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0433\u0438\u043f\u043e\u0442\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u043c\u0438. \u041d\u043e\u0432\u043e\u0435 \u0432 \u0432\u0435\u0440\u0441\u0438\u0438: \u0440\u0430\u0431\u043e\u0442\u0430\u044f \u043d\u0430 \u0441\u0442\u0435\u043d\u0434\u0431\u0430\u0435, hypopg \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u00ab\u0444\u0430\u043b\u044c\u0448\u0438\u0432\u044b\u0439\u00bb (fake) \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 oid, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0434\u0430\u043b\u0436\u0438\u0432\u0430\u0435\u0442 \u0438\u0445 \u0432\u043d\u0443\u0442\u0440\u0438 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0430 <code>FirstBootstrapObjectId \/ FirstNormalObjectId<\/code>, \u0430 \u043d\u0435 \u0433\u0435\u043d\u0435\u0440\u0438\u0442 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0435. \u0415\u0441\u043b\u0438 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f, \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043f\u043e-\u0441\u0442\u0430\u0440\u043e\u043c\u0443, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043e\u043f\u0446\u0438\u044e <code>hypopg.use_real_oids<\/code>. \u0415\u0441\u0442\u044c \u0438 \u0435\u0449\u0451 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f, <code>hypopg_list_indexes()<\/code>, \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0432 <a href=\"https:\/\/hypopg.readthedocs.io\/en\/rel1_stable\/\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438<\/a>.<\/p>\n<p>  <b><a href=\"https:\/\/dataegret.com\/2021\/04\/pgstats-dev-just-got-better-ru\/\">pgstats.dev<\/a><\/b><\/p>\n<p>  \u042d\u0442\u043e \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0430 Postgres Observability \u2014 \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u043d\u043e\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 PostgreSQL \u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438 \u043e \u0440\u0430\u0431\u043e\u0442\u0435 \u043f\u043e\u0434\u0441\u0438\u0441\u0442\u0435\u043c Postgres. \u042d\u0442\u043e\u043c\u0443 \u043d\u0435\u043e\u0431\u044b\u0447\u043d\u043e\u043c\u0443 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044e <i>\u0410\u043b\u0435\u043a\u0441\u0435\u044f \u041b\u0435\u0441\u043e\u0432\u0441\u043a\u043e\u0433\u043e<\/i> (Data Egret) \u0432\u0441\u0435\u0433\u043e 5 \u043c\u0435\u0441\u044f\u0446\u0435\u0432, \u043d\u043e \u0435\u0451 \u0437\u043d\u0430\u044e\u0442 \u043c\u043d\u043e\u0433\u0438\u0435 DBA, \u0441\u043f\u043e\u0440\u044f\u0442 \u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0442\u0441\u044f: \u0447\u0442\u043e \u043d\u043e\u0432\u0435\u043d\u044c\u043a\u043e\u0433\u043e? \u041d\u043e\u0432\u043e\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u043e\u0442:<\/p>\n<ul>\n<li>\u0441\u0442\u0440\u0435\u043b\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0430\u043d\u044c\u0448\u0435 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u043b\u0438 \u0441\u0432\u044f\u0437\u0438 \u043c\u0435\u0436\u0434\u0443 \u0431\u043b\u043e\u043a\u0430\u043c\u0438 \u0438 \u043c\u0435\u0442\u043a\u0430\u043c\u0438 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438, \u0442\u0435\u043f\u0435\u0440\u044c \u0438\u0441\u0447\u0435\u0437\u043b\u0438, \u0430 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0446\u0432\u0435\u0442\u0430 \u0432\u0432\u0435\u0434\u0435\u043d\u044b, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0438\u0445 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044f;<\/li>\n<li>\u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u0445 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a (\u0441\u043c. <a href=\"https:\/\/pgstats.dev\/pg_stat_progress_create_index\">pg_stat_progress_create_index<\/a> \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u0430) \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0430 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044f\u044f \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044f \u0437\u0430 \u0441\u0447\u0435\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0441\u044b\u043b\u043e\u043a \u043d\u0430 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b;<\/li>\n<li>\u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u2013 \u0432\u043d\u0435\u0448\u043d\u0438\u0435 \u0441\u0441\u044b\u043b\u043a\u0438 \u0441 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439;<\/li>\n<li>\u0442\u0435\u043f\u0435\u0440\u044c \u0435\u0441\u0442\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0432\u0435\u0440\u0441\u0438\u044f\u043c\u0438, \u0447\u0442\u043e\u0431\u044b \u0432\u044b \u043c\u043e\u0433\u043b\u0438 \u0432\u0438\u0434\u0435\u0442\u044c, \u043a\u0430\u043a Postgres \u044d\u0432\u043e\u043b\u044e\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043b \u043e\u0442 \u043e\u0434\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u043a \u0434\u0440\u0443\u0433\u043e\u0439.<\/li>\n<\/ul>\n<p>  <b><a href=\"https:\/\/github.com\/apache\/incubator-age\/releases\/tag\/0.4.0\">AGE 0.4.0<\/a><\/b><\/p>\n<p>  \u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e\u0449\u0435\u0435 \u0433\u0440\u0430\u0444\u043e\u0432\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c. \u041d\u043e\u0432\u0448\u0435\u0441\u0442\u0432\u0430 \u0432 0.4.0 <a href=\"https:\/\/github.com\/apache\/incubator-age\/releases\/tag\/0.4.0\">\u0437\u0434\u0435\u0441\u044c<\/a>.<\/p>\n<p>  <b><a href=\"https:\/\/www.postgresql.org\/about\/news\/pg_log_statements-002-released-2200\/\">pg_log_statements 0.0.2<\/a><\/b><\/p>\n<p>  pg_log_statements \u2014 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 PostgreSQL, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u0442\u044c SQL-\u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0442\u0430\u043a, \u0447\u0442\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f <code>log_statement<\/code> \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0430 \u0434\u043b\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 (\u043f\u043e id \u0438\u043b\u0438 \u0444\u0438\u043b\u044c\u0442\u0440\u0443), \u0430 \u043d\u0435 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0431\u0430\u0437\u044b \u0438\u043b\u0438 \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u0430.<\/p>\n<p>  \u041c\u043e\u0436\u043d\u043e \u0437\u0430\u0439\u0442\u0438 \u043d\u0430 <a href=\"https:\/\/www.pgxn.org\/dist\/pg_log_statements\/0.0.2PGXN\">PGXN<\/a> \u0438\u043b\u0438 \u043d\u0430 <a href=\"https:\/\/github.com\/pierreforstmann\/pg_log_statements\">\u0433\u0438\u0442\u0445\u0430\u0431\u0435<\/a> \u0441\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u044f \u2014 <i>\u041f\u044c\u0435\u0440\u0430 \u0424\u043e\u0440\u0441\u0442\u043c\u0430\u043d\u0430<\/i>, <a href=\"https:\/\/www.orafaq.com\/aggregator\/sources\/469\">\u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u0430<\/a> \u043f\u043e Oracle.<\/p>\n<p>  <\/p>\n<h3>\u041a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438<\/h3>\n<p>  <b><a href=\"https:\/\/postgreslondon.org\/\">PostgresLondon 2021<\/a><\/b><\/p>\n<p>  \u0421\u043e\u0441\u0442\u043e\u0438\u0442\u0441\u044f \u0443\u0436\u0435 12-\u0433\u043e \u043c\u0430\u044f, <b>\u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f<\/b>. <a href=\"https:\/\/postgreslondon.org\/agenda\/?mkt_tok=MDY5LUFMQi0zMzkAAAF83-HHGZEe2C6-bRfNXMROaXePxgI8VMtLCCHroth34KX9DVUzRMR4aQedjqS4Q3ocrNFxapIt6nHJmIl2MGtUK7E7OVUTB17FfQjCWAKOjogG\">\u0420\u0430\u0441\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/a>.<\/p>\n<p>  <b><a href=\"https:\/\/www.highload.ru\/\">Highload++<\/a><\/b><\/p>\n<p>  \u0421\u043e\u0441\u0442\u043e\u0438\u0442\u0441\u044f <b>\u043e\u0444\u043b\u0430\u0439\u043d<\/b> 17 -18 \u043c\u0430\u044f \u0432 \u041a\u0440\u043e\u043a\u0443\u0441-\u042d\u043a\u0441\u043f\u043e, \u041c\u043e\u0441\u043a\u0432\u0430. <a href=\"https:\/\/docs.google.com\/spreadsheets\/d\/13fKaRjDISwz2k_C50Fnm-1rfqU8m6wpt0Q3rLtjp-jQ\/edit?source=highload.ru#gid=0\">\u0420\u0430\u0441\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/a>.<\/p>\n<p>  <b><a href=\"https:\/\/www.postgresvision.com\/\">Postgres Vision 2020<\/a><\/b><\/p>\n<p>  Postgres Vision \u2014 <b>\u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f<\/b> \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f EDB, \u043d\u043e \u0443\u0447\u0430\u0441\u0442\u0438\u0435 <b>\u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0435<\/b>. \u0421\u043e\u0441\u0442\u043e\u0438\u0442\u0441\u044f 22-23 \u0438\u044e\u043d\u044f. <a href=\"https:\/\/www.postgresvision.com\/register\">\u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f<\/a>.<\/p>\n<p>  <i>\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043d\u043e\u043c\u0435\u0440 \u2014 Postgresso 32 \u2014 \u0432\u044b\u0439\u0434\u0435\u0442 \u0432 \u043f\u0435\u0440\u0432\u044b\u0445 \u0447\u0438\u0441\u043b\u0430\u0445 \u0438\u044e\u043d\u044f.<\/i><\/div>\n<p> \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\/551776\/\"> https:\/\/habr.com\/ru\/company\/postgrespro\/blog\/551776\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\"><i>\u041d\u0430\u0434\u0435\u0435\u043c\u0441\u044f, \u0447\u0442\u043e \u0432\u044b \u0445\u043e\u0440\u043e\u0448\u043e \u043e\u0442\u0434\u043e\u0445\u043d\u0443\u043b\u0438 \u0438 \u043f\u043e\u043f\u0440\u0430\u0437\u0434\u043d\u043e\u0432\u0430\u043b\u0438. \u0410 \u043c\u044b \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c \u0432\u0430\u043c \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u0443\u044e \u0441\u0432\u043e\u0434\u043a\u0443 Postgres-\u043d\u043e\u0432\u043e\u0441\u0442\u0435\u0439.<\/i><\/p>\n<h3>PostgreSQL 14 Beta 1<\/h3>\n<p>  \u0420\u0435\u043b\u0438\u0437\u043d\u0430\u044f \u0433\u0440\u0443\u043f\u043f\u0430 \u0432 \u0441\u043e\u0441\u0442\u0430\u0432\u0435 <i>\u041f\u0438\u0442 \u0413\u0435\u0439\u0433\u0430\u043d<\/i> (Pete Geoghegan, Crunchy Data), <i>\u041c\u0438\u0448\u0435\u043b\u044c \u041f\u0430\u043a\u044c\u0435<\/i> (Michael Paquier, VMWare) \u0438 <i>\u042d\u043d\u0434\u0440\u044e \u0414\u0430\u043d\u0441\u0442\u0430\u043d<\/i> (Andrew Dunstan, EDB) \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e\u0442 \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u0442\u044c \u0431\u0435\u0442\u0443 20-\u0433\u043e \u043c\u0430\u044f, \u043a\u0430\u043a \u044d\u0442\u043e \u0438 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u043b\u043e \u0441 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u043c\u0438 \u0431\u0435\u0442\u0430\u043c\u0438.<\/p>\n<h3>Commitfest afterparty<\/h3>\n<p>  <b><a href=\"https:\/\/habr.com\/ru\/company\/postgrespro\/blog\/550632\/?fbclid=IwAR2adWZlRxbC7iztPzUsbGTCND_ZnadmTgy9UO94cgIbWFbIkpBx0JzaUnQ\">PostgreSQL 14: \u0427\u0430\u0441\u0442\u044c 5 \u0438\u043b\u0438 \u00ab\u0432\u0435\u0441\u0435\u043d\u043d\u0438\u0435 \u0437\u0430\u043c\u043e\u0440\u043e\u0437\u043a\u0438\u00bb (\u041a\u043e\u043c\u043c\u0438\u0442\u0444\u0435\u0441\u0442 2021-03)<\/a><\/b><\/p>\n<p>  \u0412 \u044d\u0442\u043e\u043c \u043e\u0431\u0437\u043e\u0440\u0435 \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e \u0432\u0441\u0435\u0433\u043e, \u0443\u0440\u043e\u0436\u0430\u0439\u043d\u044b\u0439 \u043a\u043e\u043c\u043c\u0438\u0442\u0444\u0435\u0441\u0442.<br \/>  \u0412\u0441\u0451 \u0441\u0430\u043c\u043e\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435 \u043e \u043f\u0435\u0440\u0432\u044b\u0445 \u0447\u0435\u0442\u044b\u0440\u0435\u0445 \u043a\u043e\u043c\u043c\u0438\u0442\u0444\u0435\u0441\u0442\u0430\u0445 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u0441\u0442\u0430\u0442\u044c\u044f\u0445 \u0441\u0435\u0440\u0438\u0438: <a href=\"https:\/\/habr.com\/ru\/company\/postgrespro\/blog\/510124\/\">\u0438\u044e\u043b\u044c\u0441\u043a\u0438\u0439<\/a>, <a href=\"https:\/\/habr.com\/ru\/company\/postgrespro\/blog\/522428\/\">\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044c\u0441\u043a\u0438\u0439<\/a>, <a href=\"https:\/\/habr.com\/ru\/company\/postgrespro\/blog\/533058\/\">\u043d\u043e\u044f\u0431\u0440\u044c\u0441\u043a\u0438\u0439<\/a>, <a href=\"https:\/\/habr.com\/ru\/company\/postgrespro\/blog\/541252\/\">\u044f\u043d\u0432\u0430\u0440\u0441\u043a\u0438\u0439<\/a>.<\/p>\n<p>  \u0412\u043e\u0442 \u0430\u0432\u0442\u043e\u0440\u0441\u043a\u0438\u0439 \u0442\u0438\u0437\u0435\u0440:<\/p>\n<ul>\n<li>\u041c\u043e\u0436\u0435\u0442 \u043b\u0438 \u043e\u0434\u0438\u043d \u0437\u0430\u043f\u0440\u043e\u0441 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u043d\u0430 \u0440\u0430\u0437\u043d\u044b\u0445 \u0441\u0435\u0440\u0432\u0435\u0440\u0430\u0445?<\/li>\n<li>\u041a\u0430\u043a \u043d\u0430\u0439\u0442\u0438 \u0437\u0430\u043f\u0440\u043e\u0441 \u0438\u0437 <code>pg_stat_activity<\/code> \u0432 <code>pg_stat_statements<\/code>?<\/li>\n<li>\u041c\u043e\u0436\u043d\u043e \u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0438 \u0443\u0434\u0430\u043b\u044f\u0442\u044c \u0441\u0435\u043a\u0446\u0438\u0438 \u0441\u0435\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043d\u0435 \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435?<\/li>\n<li>\u041a\u0430\u043a \u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u043d\u0430 \u043f\u0440\u043e\u0434 \u0447\u0442\u043e\u0431\u044b \u043e\u043d\u0438 \u043c\u043e\u0433\u043b\u0438 \u0432\u0441\u0451 \u0432\u0438\u0434\u0435\u0442\u044c, \u043d\u043e \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043c\u043e\u0433\u043b\u0438 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c?<\/li>\n<li>\u041f\u043e\u0447\u0435\u043c\u0443 VACUUM \u043f\u043e\u0441\u043b\u0435 COPY FREEZE \u0437\u0430\u043d\u043e\u0432\u043e \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0432\u0441\u044e \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0438 \u0447\u0442\u043e \u0441 \u044d\u0442\u0438\u043c \u0434\u0435\u043b\u0430\u0442\u044c?<\/li>\n<li>\u041c\u043e\u0436\u043d\u043e \u043b\u0438 \u0441\u0436\u0438\u043c\u0430\u0442\u044c TOAST \u0447\u0435\u043c-\u0442\u043e \u043a\u0440\u043e\u043c\u0435 \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e\u0433\u043e <code>zlib<\/code>?<\/li>\n<li>\u041a\u0430\u043a \u043f\u043e\u043d\u044f\u0442\u044c \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0434\u043b\u0438\u0442\u0441\u044f \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0430 \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u0430\u044f \u0432 pg_locks?<\/li>\n<li>\u0414\u043b\u044f \u0447\u0435\u0433\u043e \u043d\u0443\u0436\u043d\u044b CYCLE \u0438 SEARCH \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e\u043c\u0443 \u0437\u0430\u043f\u0440\u043e\u0441\u0443?<\/li>\n<li>\u0422\u0435\u043a\u0441\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u043d\u0430 \u043a\u0430\u043a\u0438\u0445 \u044f\u0437\u044b\u043a\u0430\u0445 (\u043a\u0440\u043e\u043c\u0435 C) \u043d\u0435 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u0432\u044b\u0437\u043e\u0432\u0435?<\/li>\n<\/ul>\n<p>  <\/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-322902","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/322902","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=322902"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/322902\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=322902"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=322902"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=322902"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}