{"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":"DB del messaggero (parte 2): sezioniamo \"in diretta\"","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Abbiamo progettato con successo la struttura del nostro database PostgreSQL per memorizzare la corrispondenza, \u00e8 passato un anno, gli utenti lo stanno riempiendo attivamente, e ci sono 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: progettiamo la struttura del database<\/a><\/noindex><\/li>\n<li>Parte 2: sectioniamo 'in tempo reale'<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"DB del messaggero (parte 2): sezioniamo &quot;in diretta&quot;\" src=\"\/wp-content\/uploads\/2020\/01\/7830da046d9c472af15330e42cbb05e0.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nIl fatto \u00e8 che <b>con l'aumento del volume della tabella cresce anche la 'profondit\u00e0' degli indici<\/b> - anche se in modo logaritmico. Ma nel tempo questo costringe il server a gestire per svolgere le stesse operazioni di lettura\/scrittura <i>un numero di pagine di dati di gran lunga maggiore<\/i>, rispetto all'inizio.<\/p>\n<p>E qui interviene <b>la suddivisione<\/b>.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nVoglio sottolineare che non parliamo di sharding, ovvero della distribuzione dei dati tra diversi database o server. Perch\u00e9, anche se distribuisci i dati su <b>alcune<\/b> server, non ti libererai del problema dell' 'espansione' degli indici nel tempo. \u00c8 chiaro che se puoi permetterti di mettere in funzione un nuovo server ogni giorno, i tuoi problemi si sposteranno su una dimensione diversa rispetto a quella del database specifico.<\/p>\n<p>Discuteremo non di script concreti per implementare la suddivisione 'in hardware', ma del concetto stesso: cosa e come dovremmo 'tagliare a fette' e a cosa porta questo desiderio.<\/p>\n<h2>Ribadiamo il nostro obiettivo: vogliamo fare in modo che oggi, domani e tra un anno la quantit\u00e0 di dati PostgreSQL leggibili durante qualsiasi operazione di lettura\/scrittura rimanga pi\u00f9 o meno la stessa.<\/h2>\n<p>\nDefiniamo di nuovo il nostro obiettivo: vogliamo fare in modo che oggi, domani e tra un anno il numero di dati PostgreSQL leggibili durante qualsiasi operazione di lettura\/scrittura rimanga all'incirca lo stesso.<\/p>\n<p>Per qualsiasi tipo di <b>dati accumulati cronologicamente<\/b> (messaggi, documenti, log, archivi, &#8230;) la scelta naturale per la chiave di sezionamento \u00e8 <b>la data\/ora dell'evento<\/b>. Nel nostro caso, tale evento \u00e8 <u>il momento dell'invio del messaggio<\/u>.<\/p>\n<p>Notiamo che gli utenti praticamente sempre <b>lavorano solo con i 'ultimi'<\/b> di questi dati \u2014 leggono gli ultimi messaggi, analizzano gli ultimi log,... No, certo, possono scorrere anche indietro nel tempo, ma lo fanno molto raramente.<\/p>\n<p>Da queste limitazioni diventa ovvio che la soluzione ottimale per i messaggi sar\u00e0 <b>suddivisioni 'giornaliere'<\/b> \u2014 poich\u00e9 quasi sempre il nostro utente legger\u00e0 ci\u00f2 che ha ricevuto 'oggi' o 'ieri'.<\/p>\n<p>Se durante il giorno scriviamo e leggiamo praticamente solo in una suddivisione, questo ci consente anche un <b>uso pi\u00f9 efficiente della memoria e del disco.<\/b> \u2014 poich\u00e9 tutti gli indici della sezione si adattano facilmente in memoria, a differenza di quelli \"grandi e grassi\" su tutta la tabella.<\/p>\n<h2>passo dopo passo<\/h2>\n<p>\nIn generale, tutto ci\u00f2 che \u00e8 stato detto sopra suona come un unico enorme profitto. E pu\u00f2 essere realizzato, ma per questo dobbiamo fare un buon lavoro \u2014 perch\u00e9 <u>la decisione di sezionare una delle entit\u00e0 comporta la necessit\u00e0 di \"scomporre\" anche quelle collegate<\/u>.<\/p>\n<h4>Il messaggio, le sue propriet\u00e0 e le proiezioni<\/h4>\n<p>\nDato che abbiamo deciso di suddividere i messaggi in base alle date, ha senso anche dividere le entit\u00e0-propriet\u00e0 a essi dipendenti (allegati, elenco dei destinatari) e <b>anche in base alla data del messaggio<\/b>.<\/p>\n<p>Poich\u00e9 uno dei nostri compiti tipici \u00e8 proprio la visualizzazione dei registri dei messaggi (non letti, in arrivo, tutti), \u00e8 logico \"includerli\" nella sezionatura per data dei messaggi.<\/p>\n<p><img decoding=\"async\" alt=\"DB del messaggero (parte 2): sezioniamo &quot;in diretta&quot;\" src=\"\/wp-content\/uploads\/2020\/01\/5ea615ca97a2b865de537777c401038c.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<blockquote><p>Aggiungiamo la chiave di sezionamento (data del messaggio) in tutte le tabelle: destinatari, file, registri. Non \u00e8 necessario aggiungerla nel messaggio, ma utilizzare la data e ora esistenti.<\/p><\/blockquote>\n<p><\/p>\n<h4>Temi<\/h4>\n<p>\nPoich\u00e9 il tema \u00e8 uno per pi\u00f9 messaggi, non si pu\u00f2 semplicemente \"sezionare\" in quel modello, bisogna basarsi su qualcos'altro. Nel nostro caso, si adatta perfettamente <b>la data del primo messaggio nella corrispondenza<\/b> \u2014 cio\u00e8 il momento della creazione effettiva del tema.<\/p>\n<p><img decoding=\"async\" alt=\"DB del messaggero (parte 2): sezioniamo &quot;in diretta&quot;\" src=\"\/wp-content\/uploads\/2020\/01\/4f1336a9e229221f1e25ee8d3c08fb5e.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<blockquote><p>Aggiungiamo la chiave di sezionamento (data del tema) in tutte le tabelle: tema, partecipante.<\/p><\/blockquote>\n<p>\nMa ora abbiamo subito due problemi:<\/p>\n<ul>\n<li>in quale sezione cercare messaggi per tema?<\/li>\n<li>in quale sezione cercare il tema da un messaggio?<\/li>\n<\/ul>\n<p>\nSi pu\u00f2, ovviamente, continuare a cercare in tutte le sezioni, ma sarebbe molto triste e annullerebbe tutti i nostri guadagni. Pertanto, per sapere dove cercare esattamente, faremo riferimenti logici\/puntatori alle 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 corrispondenza (pu\u00f2 essere una tabella separata o un array di date)<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"DB del messaggero (parte 2): sezioniamo &quot;in diretta&quot;\" src=\"\/wp-content\/uploads\/2020\/01\/f7bfdc96c396ca37f46d876f185bf98e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPoich\u00e9 le modifiche all'elenco delle date dei messaggi per ogni singola corrispondenza saranno poche (dopotutto, quasi tutti i messaggi rientrano in 1-2 giorni consecutivi), mi fermer\u00f2 proprio su questa opzione.<\/p>\n<p>In sintesi, la struttura del nostro database ha assunto il seguente aspetto tenendo conto della sezionatura:<\/p>\n<p><b class=\"spoiler_title\">Tabelle: RU, se si ha avversione per il cirillico nei nomi delle tabelle\/campi \u00e8 meglio non guardare<\/b><\/p>\n<pre><code class=\"sql\">-- sezioni per 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\" -- usiamo 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 per 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);\n<\/code><\/pre>\n<h2>Risparmiamo qualche centesimo<\/h2>\n<p>\nE se non usiamo <noindex><a rel=\"nofollow\" href=\"https:\/\/postgrespro.ru\/docs\/postgresql\/10\/ddl-partitioning\">la variante classica di partizionamento<\/a><\/noindex> basata sulla distribuzione dei valori del campo (tramite trigger e ereditariet\u00e0 o PARTITION BY), ma 'manualmente' a livello di applicazione, si pu\u00f2 notare che il valore della chiave di partizionamento \u00e8 gi\u00e0 conservato nel nome stesso della tabella.<\/p>\n<p>Quindi, se ti preoccupi cos\u00ec tanto <b>del volume dei dati memorizzati<\/b>, puoi eliminare questi 'superflui' campi e indirizzarti direttamente a tabelle specifiche. Tuttavia, in questo caso tutte le selezioni da pi\u00f9 sezioni dovranno 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.1.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.1.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 messenger (parte 2): partizioniamo 'in tempo reale' | ProHoster","description":"Abbiamo progettato con successo la struttura del nostro database PostgreSQL per la memorizzazione della corrispondenza, \u00e8 passato un anno, gli utenti lo stanno riempiendo attivamente, e gi\u00e0 ci sono milioni di registrazioni, 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}]}}