{"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\/es\/blog\/administrirovanie\/bd-messendzhera-ch-2-sektsioniruem-nazhivuyu","title":{"rendered":"BD del mensajero (parte 2): seccionamos \u00aben vivo\u00bb","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Hemos dise\u00f1ado con \u00e9xito la estructura de nuestra base de datos PostgreSQL para almacenar correspondencia; ha pasado un a\u00f1o y los usuarios la est\u00e1n llenando activamente, ya contiene <b>millones de registros<\/b>, y... algo comenz\u00f3 a ralentizarse.<\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/483176\/\">Parte 1: dise\u00f1amos la estructura de la base<\/a><\/noindex><\/li>\n<li>Parte 2: seccionamos 'en vivo'<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"BD del mensajero (parte 2): seccionamos \u00aben vivo\u00bb\" src=\"\/wp-content\/uploads\/2020\/01\/7830da046d9c472af15330e42cbb05e0.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nLa cuesti\u00f3n es que <b>Con el aumento del tama\u00f1o de la tabla, tambi\u00e9n crece la \u00abprofundidad\u00bb de los \u00edndices<\/b> \u2014 aunque de manera logar\u00edtmica. Pero con el tiempo esto obliga al servidor a procesar <i>muchas m\u00e1s p\u00e1ginas de datos<\/i>, en comparaci\u00f3n con al principio.<\/p>\n<p>Aqu\u00ed es donde entra en juego <b>el particionamiento<\/b>.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nCabe se\u00f1alar que no se trata de sharding, es decir, la distribuci\u00f3n de datos entre diferentes bases de datos o servidores. Porque, incluso si divides los datos entre <b>varios<\/b> servidores, no podr\u00e1s evitar el problema de la \u00abinflaci\u00f3n\u00bb de los \u00edndices con el tiempo. Es obvio que si puedes permitirte poner en funcionamiento un nuevo servidor cada d\u00eda, entonces tus problemas estar\u00e1n en un nivel diferente al de una base de datos espec\u00edfica.<\/p>\n<p>Vamos a considerar no los scripts espec\u00edficos para implementar el particionamiento \u00aben hardware\u00bb, sino el enfoque mismo \u2014 qu\u00e9 y c\u00f3mo se debe \u00abcortar en porciones\u00bb, y a qu\u00e9 lleva este deseo.<\/p>\n<h2>Concepto<\/h2>\n<p>\nUna vez m\u00e1s definamos nuestro objetivo: queremos asegurarnos de que hoy, ma\u00f1ana y dentro de un a\u00f1o, la cantidad de datos legibles de PostgreSQL en cualquier operaci\u00f3n de lectura\/escritura permanezca aproximadamente igual.<\/p>\n<p>Para cualquier <b>dato acumulado cronol\u00f3gicamente<\/b> (mensajes, documentos, registros, archivos, &#8230;) la elecci\u00f3n natural como clave de partici\u00f3n es <b>la fecha\/hora del evento<\/b>. En nuestro caso, ese evento es <u>el momento del env\u00edo del mensaje<\/u>.<\/p>\n<p>Notemos que los usuarios casi siempre <b>trabajan solo con los \u00ab\u00faltimos\u00bb<\/b> datos de este tipo \u2014 leen los mensajes m\u00e1s recientes, analizan los registros m\u00e1s recientes,\u2026 No, claro, pueden desplazarse m\u00e1s atr\u00e1s en el tiempo, solo que lo hacen muy raramente.<\/p>\n<p>De estas limitaciones se deduce que la soluci\u00f3n \u00f3ptima para los mensajes ser\u00e1 <b>secciones \u00abdiarias\u00bb<\/b> \u2014 ya que casi siempre nuestro usuario leer\u00e1 lo que le ha llegado \u00abhoy\u00bb o \u00abayer\u00bb.<\/p>\n<p>Si durante el d\u00eda escribimos y leemos pr\u00e1cticamente solo en una secci\u00f3n, esto nos brinda tambi\u00e9n <b>un uso m\u00e1s eficiente de la memoria y del disco<\/b> \u2014 dado que todos los \u00edndices de la secci\u00f3n caben c\u00f3modamente en la memoria, a diferencia de los \u00abgrandes y pesados\u00bb de toda la tabla.<\/p>\n<h2>step-by-step<\/h2>\n<p>\nEn general, todo lo mencionado anteriormente suena como una gran ganancia. Y es alcanzable, pero para ello tendremos que esforzarnos mucho, porque <u>la decisi\u00f3n de seccionar una de las entidades conlleva la necesidad de \"recortar\" tambi\u00e9n las relacionadas con ella<\/u>.<\/p>\n<h4>El mensaje, sus propiedades y proyecciones<\/h4>\n<p>\nDado que hemos decidido segmentar los mensajes por fechas, tambi\u00e9n ser\u00eda razonable dividir las entidades-propiedades dependientes (archivos adjuntos, lista de destinatarios), y <b>tambi\u00e9n por fecha del mensaje<\/b>.<\/p>\n<p>Dado que una de nuestras tareas t\u00edpicas es revisar los registros de mensajes (no le\u00eddos, entrantes, todos), tambi\u00e9n ser\u00eda l\u00f3gico \"incluirlos\" en la segmentaci\u00f3n por fechas de los mensajes.<\/p>\n<p><img decoding=\"async\" alt=\"BD del mensajero (parte 2): seccionamos \u00aben vivo\u00bb\" src=\"\/wp-content\/uploads\/2020\/01\/5ea615ca97a2b865de537777c401038c.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<blockquote><p>Agregamos la clave de segmentaci\u00f3n (fecha del mensaje) a todas las tablas: destinatarios, archivo, registros. No es necesario a\u00f1adirla al propio mensaje, sino utilizar el existente FechaHora.<\/p><\/blockquote>\n<p><\/p>\n<h4>Temas<\/h4>\n<p>\nDado que un tema se relaciona con varios mensajes, no se puede \"recortar\" en el mismo modelo, hay que basarse en otra cosa. En nuestro caso, encaja perfectamente <b>la fecha del primer mensaje en la conversaci\u00f3n<\/b> es decir, el momento en que se cre\u00f3, en realidad, el tema.<\/p>\n<p><img decoding=\"async\" alt=\"BD del mensajero (parte 2): seccionamos \u00aben vivo\u00bb\" src=\"\/wp-content\/uploads\/2020\/01\/4f1336a9e229221f1e25ee8d3c08fb5e.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<blockquote><p>Agregamos la clave de segmentaci\u00f3n (fecha del tema) a todas las tablas: tema, participante.<\/p><\/blockquote>\n<p>\nPero ahora nos surgen de inmediato dos problemas:<\/p>\n<ul>\n<li>\u00bfen qu\u00e9 secci\u00f3n buscar mensajes por tema?<\/li>\n<li>\u00bfen qu\u00e9 secci\u00f3n buscar el tema a partir del mensaje?<\/li>\n<\/ul>\n<p>\nClaro que se puede seguir buscando en todas las secciones, pero eso ser\u00eda muy triste y anular\u00eda todas nuestras ganancias. Por lo tanto, para saber d\u00f3nde buscar exactamente, haremos enlaces l\u00f3gicos\/indicadores en las secciones:<\/p>\n<ul>\n<li>en el mensaje a\u00f1adiremos <b>un campo con la fecha del tema<\/b><\/li>\n<li>al tema a\u00f1adiremos <b>un conjunto de fechas de mensajes<\/b> de esta conversaci\u00f3n (puede ser una tabla separada o un array de fechas)<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"BD del mensajero (parte 2): seccionamos \u00aben vivo\u00bb\" src=\"\/wp-content\/uploads\/2020\/01\/f7bfdc96c396ca37f46d876f185bf98e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDado que habr\u00e1 pocas modificaciones en la lista de fechas de mensajes para cada conversaci\u00f3n en particular (ya que casi todos los mensajes caen en 1-2 d\u00edas consecutivos), me quedar\u00e9 con esta opci\u00f3n.<\/p>\n<p>En resumen, la estructura de nuestra base se ha configurado de la siguiente manera considerando la segmentaci\u00f3n:<\/p>\n<p><b class=\"spoiler_title\">Tablas: RU, si se siente aversi\u00f3n a usar cir\u00edlico en los nombres de las tablas\/campos, es mejor no mirar<\/b><\/p>\n<pre><code class=\"sql\">-- secciones por fecha del mensaje\nCREATE TABLE \"Mensaje_YYYYMMDD\"(\n  \"Mensaje\"\n    uuid\n      PRIMARY KEY\n, \"Tema\"\n    uuid\n, \"FechaTema\"\n    date\n, \"Autor\"\n    uuid\n, \"FechaHora\" -- utilizado como fecha\n    timestamp\n, \"Texto\"\n    text\n);\n\nCREATE TABLE \"Destinatario_YYYYMMDD\"(\n  \"FechaMensaje\"\n    date\n, \"Mensaje\"\n    uuid\n, \"Persona\"\n    uuid\n, PRIMARY KEY(\"Mensaje\", \"Persona\")\n);\n\nCREATE TABLE \"Archivo_YYYYMMDD\"(\n  \"FechaMensaje\"\n    date\n, \"Archivo\"\n    uuid\n      PRIMARY KEY\n, \"Mensaje\"\n    uuid\n, \"BLOB\"\n    uuid\n, \"Nombre\"\n    text\n);\n\nCREATE TABLE \"RegistroMensajes_YYYYMMDD\"(\n  \"FechaMensaje\"\n    date\n, \"Propietario\"\n    uuid\n, \"TipoRegistro\"\n    smallint\n, \"FechaHora\"\n    timestamp\n, \"Mensaje\"\n    uuid\n, PRIMARY KEY(\"Propietario\", \"TipoRegistro\", \"Mensaje\")\n);\nCREATE INDEX ON \"RegistroMensajes_YYYYMMDD\"(\"Propietario\", \"TipoRegistro\", \"FechaHora\" DESC);\n\n-- secciones por fecha del tema\nCREATE TABLE \"Tema_YYYYMMDD\"(\n  \"FechaTema\"\n    date\n, \"Tema\"\n    uuid\n      PRIMARY KEY\n, \"Documento\"\n    uuid\n, \"T\u00edtulo\"\n    text\n);\n\nCREATE TABLE \"ParticipanteTema_YYYYMMDD\"(\n  \"FechaTema\"\n    date\n, \"Tema\"\n    uuid\n, \"Persona\"\n    uuid\n, PRIMARY KEY(\"Tema\", \"Persona\")\n);\n\nCREATE TABLE \"FechasMensajesTema_YYYYMMDD\"(\n  \"FechaTema\"\n    date\n, \"Tema\"\n    uuid\n      PRIMARY KEY\n, \"Fecha\"\n    date);\n<\/code><\/pre>\n<h2>Ahorremos un poco<\/h2>\n<p>\nPero, si no utilizamos el <noindex><a rel=\"nofollow\" href=\"https:\/\/postgrespro.ru\/docs\/postgresql\/10\/ddl-partitioning\">m\u00e9todo cl\u00e1sico de particionado<\/a><\/noindex> basado en la distribuci\u00f3n de los valores del campo (a trav\u00e9s de triggers y herencia o PARTITION BY), y lo hacemos \"manualmente\" a nivel de aplicaci\u00f3n, se puede notar que el valor de la clave de particionado ya se almacena en el nombre de la tabla misma.<\/p>\n<p>Por lo tanto, si est\u00e1s tan <b>preocupado por el volumen de datos almacenados<\/b>, entonces puedes deshacerte de estos \"campos innecesarios\" y acceder directamente a tablas espec\u00edficas. Sin embargo, todas las selecciones de varias secciones en este caso deber\u00e1n ser manejadas por la aplicaci\u00f3n.<br \/>\n<br \/>Fuente: <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.2 - 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\/es\/blog\/administrirovanie\/bd-messendzhera-ch-2-sektsioniruem-nazhivuyu\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"es_ES\" \/>\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\/es\/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\udd47Base de datos del mensajero (parte 2): particionando \"en vivo\" | ProHoster","description":"Hemos dise\u00f1ado exitosamente la estructura de nuestra base de datos PostgreSQL para almacenar las conversaciones, ha pasado un a\u00f1o, los usuarios la han estado llenando activamente, ya tiene millones de registros, y... algo ha comenzado a ralentizarse.","canonical_url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/bd-messendzhera-ch-2-sektsioniruem-nazhivuyu","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"es_ES","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\/es\/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\/es\/wp-json\/wp\/v2\/posts\/55027","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/comments?post=55027"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/55027\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media?parent=55027"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/categories?post=55027"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/tags?post=55027"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}