{"id":55027,"date":"2020-01-10T00:00:00","date_gmt":"2020-01-09T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/bd-messendzhera-ch-2-sektsioniruem-nazhivuyu"},"modified":"2020-02-18T14:03:06","modified_gmt":"2020-02-18T11:03:06","slug":"bd-messendzhera-ch-2-sektsioniruem-nazhivuyu","status":"publish","type":"post","link":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/bd-messendzhera-ch-2-sektsioniruem-nazhivuyu","title":{"rendered":"Database del messaggero (Parte 2): sezioniamo \u00ablive\u00bb","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Abbiamo progettato con successo la struttura del nostro database PostgreSQL per memorizzare le conversazioni; \u00e8 passato un anno, gli utenti lo stanno riempiendo attivamente e ora contiene gi\u00e0 <b>milioni di record<\/b>, e... qualcosa ha cominciato a rallentare.<\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/483176\/\">Parte 1: progettazione della struttura del database<\/a><\/noindex><\/li>\n<li>Parte 2: sezioniamo 'in tempo reale'<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Database del messaggero (Parte 2): sezioniamo \u00ablive\u00bb\" src=\"\/wp-content\/uploads\/2020\/01\/7830da046d9c472af15330e42cbb05e0.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nIl fatto \u00e8 che <b>Con l'aumento della dimensione della tabella cresce anche la \"profondit\u00e0\" degli indici<\/b> \u2014 anche se in modo logaritmico. Ma col tempo questo costringe il server a elaborare un numero significativamente maggiore di pagine di dati <i>, rispetto all'inizio.<\/i>, rispetto all'inizio.<\/p>\n<p>Ecco che entra in gioco <b>la partizionamento<\/b>.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nVorrei sottolineare che non stiamo parlando di sharding, ovvero della distribuzione dei dati su database o server diversi. Infatti, anche suddividendo i dati tra <b>alcuni<\/b> server, non ci libereremo del problema dell'espansione degli indici nel tempo. \u00c8 chiaro che se puoi permetterti di introdurre un nuovo server ogni giorno, i tuoi problemi non saranno pi\u00f9 legati a un singolo database.<\/p>\n<p>Noi analizzeremo non script specifici per implementare il partizionamento \"in hardware\", ma il concetto stesso \u2014 cosa e come dovrebbe essere \"tagliato a fette\", e quale impatto pu\u00f2 avere questo approccio.<\/p>\n<h2>Concetto<\/h2>\n<p>\nDefiniamo nuovamente il nostro obiettivo: vogliamo assicurarci che oggi, domani e tra un anno la quantit\u00e0 di dati PostgreSQL leggibili durante qualsiasi operazione di lettura\/scrittura rimanga approssimativamente la stessa.<\/p>\n<p>Per qualsiasi <b>dati accumulati nel tempo<\/b> (messaggi, documenti, log, archivi, &#8230;) la scelta naturale come chiave di partizionamento \u00e8 <b>la data\/ora dell'evento<\/b>. Nel nostro caso, tale evento \u00e8 <u>il momento di invio del messaggio<\/u>.<\/p>\n<p>Notiamo che gli utenti di solito <b>lavorano solo con i \"pi\u00f9 recenti\"<\/b> di questi dati \u2014 leggono gli ultimi messaggi, analizzano gli ultimi log,... No, certo, possono scorrere ulteriormente nel passato, ma lo fanno molto raramente.<\/p>\n<p>Dai questi vincoli, diventa evidente che la soluzione ottimale per i messaggi sar\u00e0 <b>\"sezioni giornaliere\"<\/b> \u2014 poich\u00e9 quasi sempre il nostro utente andr\u00e0 a leggere ci\u00f2 che \u00e8 arrivato \"oggi\" o \"ieri\".<\/p>\n<p>Se durante il giorno scriviamo e leggiamo praticamente solo in una sezione, questo ci offre anche <b>un utilizzo pi\u00f9 efficiente della memoria e del disco<\/b> \u2014 poich\u00e9 tutti gli indici della sezione possono facilmente stare in memoria, a differenza dei \"grandi e pesanti\" dell'intera tabella.<\/p>\n<h2>step-by-step<\/h2>\n<p>\nIn generale, quanto sopra suona come un grande vantaggio. \u00c8 raggiungibile, ma per ottenerlo dobbiamo esforzarci bene \u2014 perch\u00e9 <u>decidere di partizionare una delle entit\u00e0 comporta anche la necessit\u00e0 di \"tagliare\" le relative<\/u>.<\/p>\n<h4>Messaggio, le sue propriet\u00e0 e proiezioni<\/h4>\n<p>\nDal momento che abbiamo deciso di segmentare i messaggi per data, ha senso dividere anche le entit\u00e0-propriet\u00e0 a essi collegate (file allegati, elenco dei destinatari), <b>e anche per data del messaggio<\/b>.<\/p>\n<p>Poich\u00e9 uno dei nostri compiti tipici \u00e8 proprio quello di visualizzare i registri dei messaggi (non letti, in arrivo, tutti), \u00e8 logico coinvolgerli nel partizionamento per data dei messaggi.<\/p>\n<p><img decoding=\"async\" alt=\"Database del messaggero (Parte 2): sezioniamo \u00ablive\u00bb\" src=\"\/wp-content\/uploads\/2020\/01\/5ea615ca97a2b865de537777c401038c.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<blockquote><p>Aggiungiamo la chiave di partizionamento (data del messaggio) in tutte le tabelle: destinatari, file, registri. Nella stessa messaggistica non \u00e8 necessario aggiungerla, ma utilizzare il gi\u00e0 esistente DataOra.<\/p><\/blockquote>\n<p><\/p>\n<h4>Temi<\/h4>\n<p>\nPoich\u00e9 il tema \u00e8 comune a pi\u00f9 messaggi, non \u00e8 possibile \"tagliarlo\" nello stesso modello, bisogna basarsi su qualcos'altro. Nel nostro caso, si adatta perfettamente <b>la data del primo messaggio nella conversazione<\/b> \u2014 cio\u00e8 il momento della creazione, di per s\u00e9, del tema.<\/p>\n<p><img decoding=\"async\" alt=\"Database del messaggero (Parte 2): sezioniamo \u00ablive\u00bb\" src=\"\/wp-content\/uploads\/2020\/01\/4f1336a9e229221f1e25ee8d3c08fb5e.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<blockquote><p>Aggiungiamo la chiave di partizionamento (data del tema) in tutte le tabelle: tema, partecipante.<\/p><\/blockquote>\n<p>\nMa ora ci sono subito due problemi:<\/p>\n<ul>\n<li>in quale sezione cercare messaggi per tema?<\/li>\n<li>in quale sezione cercare il tema del messaggio?<\/li>\n<\/ul>\n<p>\nPossiamo, certo, continuare a cercare in tutte le sezioni, ma questo sarebbe molto triste, e annullerebbe tutti i nostri guadagni. Pertanto, per sapere dove cercare specificamente, creeremo link\/logiche puntatori sulle sezioni:<\/p>\n<ul>\n<li>nel messaggio aggiungeremo <b>un campo con la data del tema<\/b><\/li>\n<li>al tema aggiungeremo <b>un insieme di date dei messaggi<\/b> di questa conversazione (pu\u00f2 anche essere una tabella separata, o un array di date)<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Database del messaggero (Parte 2): sezioniamo \u00ablive\u00bb\" src=\"\/wp-content\/uploads\/2020\/01\/f7bfdc96c396ca37f46d876f185bf98e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPoich\u00e9 le modifiche dell'elenco delle date dei messaggi per ciascuna conversazione saranno poche (poich\u00e9 quasi tutti i messaggi appartengono a 1-2 giorni associati), mi fermer\u00f2 proprio su questa opzione.<\/p>\n<p>In totale, la struttura del nostro database ha preso la seguente forma tenendo conto del partizionamento:<\/p>\n<p><b class=\"spoiler_title\">Tabelle: RU, se c'\u00e8 avversione alle lettere cirilliche nei nomi di tabelle\/campi meglio non guardare<\/b><\/p>\n<pre><code class=\"sql\">-- sezioni in base alla data del messaggio\nCREATE TABLE \"Messaggio_YYYYMMDD\"(\n  \"Messaggio\"\n    uuid\n      PRIMARY KEY\n, \"Oggetto\"\n    uuid\n, \"DataOggetto\"\n    date\n, \"Autore\"\n    uuid\n, \"DataOra\" -- usato come data\n    timestamp\n, \"Testo\"\n    text\n);\n\nCREATE TABLE \"Destinatario_YYYYMMDD\"(\n  \"DataMessaggio\"\n    date\n, \"Messaggio\"\n    uuid\n, \"Persona\"\n    uuid\n, PRIMARY KEY(\"Messaggio\", \"Persona\")\n);\n\nCREATE TABLE \"File_YYYYMMDD\"(\n  \"DataMessaggio\"\n    date\n, \"File\"\n    uuid\n      PRIMARY KEY\n, \"Messaggio\"\n    uuid\n, \"BLOB\"\n    uuid\n, \"Nome\"\n    text\n);\n\nCREATE TABLE \"RegistroMessaggi_YYYYMMDD\"(\n  \"DataMessaggio\"\n    date\n, \"Proprietario\"\n    uuid\n, \"TipoRegistro\"\n    smallint\n, \"DataOra\"\n    timestamp\n, \"Messaggio\"\n    uuid\n, PRIMARY KEY(\"Proprietario\", \"TipoRegistro\", \"Messaggio\")\n);\nCREATE INDEX ON \"RegistroMessaggi_YYYYMMDD\"(\"Proprietario\", \"TipoRegistro\", \"DataOra\" DESC);\n\n-- sezioni in base alla data dell'oggetto\nCREATE TABLE \"Oggetto_YYYYMMDD\"(\n  \"DataOggetto\"\n    date\n, \"Oggetto\"\n    uuid\n      PRIMARY KEY\n, \"Documento\"\n    uuid\n, \"Titolo\"\n    text\n);\n\nCREATE TABLE \"PartecipanteOggetto_YYYYMMDD\"(\n  \"DataOggetto\"\n    date\n, \"Oggetto\"\n    uuid\n, \"Persona\"\n    uuid\n, PRIMARY KEY(\"Oggetto\", \"Persona\")\n);\n\nCREATE TABLE \"DateMessaggiOggetto_YYYYMMDD\"(\n  \"DataOggetto\"\n    date\n, \"Oggetto\"\n    uuid\n      PRIMARY KEY\n, \"Data\"\n    date);\n<\/code><\/pre>\n<h2>Facciamo economia<\/h2>\n<p>\nMa se non utilizziamo il <noindex><a rel=\"nofollow\" href=\"https:\/\/postgrespro.ru\/docs\/postgresql\/10\/ddl-partitioning\">metodo classico di partizionamento<\/a><\/noindex> basato sulla distribuzione dei valori del campo (tramite trigger e ereditariet\u00e0 oppure PARTITION BY), ma \u2018manualmente\u2019 a livello di applicazione, si pu\u00f2 notare che il valore della chiave di partizionamento \u00e8 gi\u00e0 conservato nel nome della tabella stessa.<\/p>\n<p>Quindi, se sei cos\u00ec <b>preoccupato per il volume dei dati conservati<\/b>, si possono eliminare questi \u2018campi superflui\u2019 e accedere direttamente a tabelle specifiche. Tuttavia, tutte le selezioni da pi\u00f9 sezioni dovranno gi\u00e0 essere gestite a livello di applicazione.<br \/>\n<br \/>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/483170\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041c\u044b \u0443\u0434\u0430\u0447\u043d\u043e \u0441\u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u043d\u0430\u0448\u0435\u0439 PostgreSQL-\u0431\u0430\u0437\u044b \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u043a\u0438, \u043f\u0440\u043e\u0448\u0435\u043b \u0433\u043e\u0434, \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0435\u0435 \u043d\u0430\u043f\u043e\u043b\u043d\u044f\u044e\u0442, \u0432\u043e\u0442 \u0432 \u043d\u0435\u0439 \u0443\u0436\u0435 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u044b \u0437\u0430\u043f\u0438\u0441\u0435\u0439, \u0438\u2026 \u0447\u0442\u043e-\u0442\u043e \u0432\u0441\u0435 \u043d\u0430\u0447\u0430\u043b\u043e \u043f\u043e\u0434\u0442\u043e\u0440\u043c\u0430\u0436\u0438\u0432\u0430\u0442\u044c. \u0427\u0430\u0441\u0442\u044c 1: \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u0443\u0435\u043c \u043a\u0430\u0440\u043a\u0430\u0441 \u0431\u0430\u0437\u044b \u0427\u0430\u0441\u0442\u044c 2: \u0441\u0435\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u0443\u0435\u043c \u00ab\u043d\u0430\u0436\u0438\u0432\u0443\u044e\u00bb \u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0441 \u0440\u043e\u0441\u0442\u043e\u043c \u043e\u0431\u044a\u0435\u043c\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0440\u0430\u0441\u0442\u0435\u0442 \u0438 \u00ab\u0433\u043b\u0443\u0431\u0438\u043d\u0430\u00bb \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \u2014 \u0445\u043e\u0442\u044c \u0438 \u043b\u043e\u0433\u0430\u0440\u0438\u0444\u043c\u0438\u0447\u0435\u0441\u043a\u0438. \u041d\u043e \u0441\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u044d\u0442\u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-55027","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041c\u044b \u0443\u0434\u0430\u0447\u043d\u043e \u0441\u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u043d\u0430\u0448\u0435\u0439 PostgreSQL-\u0431\u0430\u0437\u044b \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u043a\u0438, \u043f\u0440\u043e\u0448\u0435\u043b \u0433\u043e\u0434, \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0435\u0435 \u043d\u0430\u043f\u043e\u043b\u043d\u044f\u044e\u0442, \u0432\u043e\u0442 \u0432 \u043d\u0435\u0439 \u0443\u0436\u0435 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u044b \u0437\u0430\u043f\u0438\u0441\u0435\u0439, \u0438\u2026 \u0447\u0442\u043e-\u0442\u043e \u0432\u0441\u0435 \u043d\u0430\u0447\u0430\u043b\u043e \u043f\u043e\u0434\u0442\u043e\u0440\u043c\u0430\u0436\u0438\u0432\u0430\u0442\u044c. .\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/bd-messendzhera-ch-2-sektsioniruem-nazhivuyu\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"it_IT\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0411\u0414 \u043c\u0435\u0441\u0441\u0435\u043d\u0434\u0436\u0435\u0440\u0430 (\u0447.2): \u0441\u0435\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u0443\u0435\u043c \u00ab\u043d\u0430\u0436\u0438\u0432\u0443\u044e\u00bb | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041c\u044b \u0443\u0434\u0430\u0447\u043d\u043e \u0441\u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u043d\u0430\u0448\u0435\u0439 PostgreSQL-\u0431\u0430\u0437\u044b \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u043a\u0438, \u043f\u0440\u043e\u0448\u0435\u043b \u0433\u043e\u0434, \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0435\u0435 \u043d\u0430\u043f\u043e\u043b\u043d\u044f\u044e\u0442, \u0432\u043e\u0442 \u0432 \u043d\u0435\u0439 \u0443\u0436\u0435 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u044b \u0437\u0430\u043f\u0438\u0441\u0435\u0439, \u0438\u2026 \u0447\u0442\u043e-\u0442\u043e \u0432\u0441\u0435 \u043d\u0430\u0447\u0430\u043b\u043e \u043f\u043e\u0434\u0442\u043e\u0440\u043c\u0430\u0436\u0438\u0432\u0430\u0442\u044c. .\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/bd-messendzhera-ch-2-sektsioniruem-nazhivuyu\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-01-09T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:03:06+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47DB del messaggero (parte 2): partizioniamo \u2018in tempo reale\u2019 | ProHoster","description":"Abbiamo progettato con successo la struttura del nostro database PostgreSQL per memorizzare le comunicazioni; \u00e8 passato un anno e gli utenti lo stanno riempiendo attivamente, ora ci sono gi\u00e0 milioni di record e... qualcosa ha iniziato a rallentare.","canonical_url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/bd-messendzhera-ch-2-sektsioniruem-nazhivuyu","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"it_IT","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0411\u0414 \u043c\u0435\u0441\u0441\u0435\u043d\u0434\u0436\u0435\u0440\u0430 (\u0447.2): \u0441\u0435\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u0443\u0435\u043c \u00ab\u043d\u0430\u0436\u0438\u0432\u0443\u044e\u00bb | ProHoster","og:description":"\u041c\u044b \u0443\u0434\u0430\u0447\u043d\u043e \u0441\u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u043d\u0430\u0448\u0435\u0439 PostgreSQL-\u0431\u0430\u0437\u044b \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u043a\u0438, \u043f\u0440\u043e\u0448\u0435\u043b \u0433\u043e\u0434, \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0435\u0435 \u043d\u0430\u043f\u043e\u043b\u043d\u044f\u044e\u0442, \u0432\u043e\u0442 \u0432 \u043d\u0435\u0439 \u0443\u0436\u0435 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u044b \u0437\u0430\u043f\u0438\u0441\u0435\u0439, \u0438\u2026 \u0447\u0442\u043e-\u0442\u043e \u0432\u0441\u0435 \u043d\u0430\u0447\u0430\u043b\u043e \u043f\u043e\u0434\u0442\u043e\u0440\u043c\u0430\u0436\u0438\u0432\u0430\u0442\u044c. .","og:url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/bd-messendzhera-ch-2-sektsioniruem-nazhivuyu","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-01-09T21:00:00+00:00","article:modified_time":"2020-02-18T11:03:06+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"55027","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-24 13:34:20","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 19:53:48","updated":"2026-01-24 13:34:20","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/55027","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=55027"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/55027\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=55027"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=55027"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=55027"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}