{"id":68938,"date":"2023-08-08T11:54:48","date_gmt":"2023-08-08T09:54:48","guid":{"rendered":"https:\/\/kinsta.com\/es\/?p=68938&#038;preview=true&#038;preview_id=68938"},"modified":"2025-01-17T13:43:36","modified_gmt":"2025-01-17T12:43:36","slug":"mongodb-sharding","status":"publish","type":"post","link":"https:\/\/kinsta.com\/es\/blog\/mongodb-sharding\/","title":{"rendered":"La Gu\u00eda Completa Para Comprender MongoDB Sharding"},"content":{"rendered":"<p>En un mundo basado en los datos como el actual, en el que el volumen y la complejidad de los datos siguen creciendo a un ritmo sin precedentes, la necesidad de soluciones de bases de datos s\u00f3lidas y escalables se ha convertido en algo primordial. Se calcula que en 2025 se crear\u00e1n <a href=\"https:\/\/www.statista.com\/statistics\/871513\/worldwide-data-created\/\" target=\"_blank\" rel=\"noopener noreferrer\">180 zettabytes<\/a> de datos. Son grandes cifras en las que hay que pensar.<\/p>\n<p>A medida que los datos y la demanda de los usuarios se disparan, confiar en una \u00fanica ubicaci\u00f3n de la base de datos resulta poco pr\u00e1ctico. Ralentiza tu sistema y sobrecarga a <a href=\"https:\/\/kinsta.com\/es\/blog\/que-es-un-desarrollador-full-stack\/\">los desarrolladores<\/a>. Puedes adoptar varias soluciones para <a href=\"https:\/\/kinsta.com\/es\/mykinsta\/\">optimizar tu base de datos<\/a>, como la <a href=\"https:\/\/kinsta.com\/es\/blog\/fragmentacion-de-la-base-de-datos\/\">fragmentaci\u00f3n de bases de datos<\/a>.<\/p>\n<p>En esta completa gu\u00eda, nos adentramos en las profundidades de la fragmentaci\u00f3n de MongoDB, desmitificando sus ventajas, componentes, mejores pr\u00e1cticas, errores comunes y c\u00f3mo puedes empezar.<\/p>\n<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc>\n<h2>\u00bfQu\u00e9 Es la Fragmentaci\u00f3n de Bases de Datos?<\/h2>\n<p>La fragmentaci\u00f3n de bases de datos es una t\u00e9cnica de gesti\u00f3n de bases de datos que consiste en particionar horizontalmente una base de datos en crecimiento en unidades m\u00e1s peque\u00f1as y manejables, conocidas como <b>fragmentos<\/b>.<\/p>\n<p>A medida que tu base de datos crece, resulta pr\u00e1ctico dividirla en varias partes m\u00e1s peque\u00f1as y almacenar cada parte por separado en m\u00e1quinas distintas. Estas partes m\u00e1s peque\u00f1as, o fragmentos, son subconjuntos independientes de la base de datos global. Este proceso de dividir y distribuir los datos es lo que constituye la fragmentaci\u00f3n de la base de datos.<\/p>\n<figure id=\"attachment_157232\" aria-describedby=\"caption-attachment-157232\" style=\"width: 512px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/06\/Database-Sharding-Illustration.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-157232 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/06\/Database-Sharding-Illustration.png\" alt=\"Ilustraci\u00f3n de la fragmentaci\u00f3n de bases de datos \" width=\"512\" height=\"185\"><\/a><figcaption id=\"caption-attachment-157232\" class=\"wp-caption-text\">Ilustraci\u00f3n de la fragmentaci\u00f3n de bases de datos (Fuente de la imagen: <a href=\"https:\/\/www.linkedin.com\/pulse\/intro-database-sharding-can-bad-idea-saurav-prateek\/\" target=\"_blank\" rel=\"noopener noreferrer\">LinkedIn<\/a>)<\/figcaption><\/figure>\n<p>A la hora de implantar una base de datos fragmentada, existen dos enfoques principales: desarrollar una soluci\u00f3n fragmentada personalizada o pagar por una ya existente. Esto plantea la cuesti\u00f3n de si es m\u00e1s adecuado crear una soluci\u00f3n fragmentada o pagar por ella.<\/p>\n<figure id=\"attachment_157234\" aria-describedby=\"caption-attachment-157234\" style=\"width: 512px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/06\/Build-vs-Buy-for-a-Sharding-Solution.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-157234 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/06\/Build-vs-Buy-for-a-Sharding-Solution.jpg\" alt=\"Imagen del meme Construir o comprar una soluci\u00f3n de fragmentaci\u00f3n\" width=\"512\" height=\"205\"><\/a><figcaption id=\"caption-attachment-157234\" class=\"wp-caption-text\">Imagen del meme Construir o comprar una soluci\u00f3n de fragmentaci\u00f3n (Fuente de la imagen: <a href=\"https:\/\/www.linkedin.com\/pulse\/build-vs-buy-what-do-you-expect-see-new-normal-naidu\/\" target=\"_blank\" rel=\"noopener noreferrer\">LinkedIn<\/a>)<\/figcaption><\/figure>\n<p>Para hacer esta elecci\u00f3n, tienes que considerar el coste de la integraci\u00f3n de terceros, teniendo en cuenta los siguientes factores:<\/p>\n<ul>\n<li><b>Habilidades y capacidad de aprendizaje del desarrollador<\/b>: La curva de aprendizaje asociada al producto y lo bien que se alinea con las habilidades de tus desarrolladores.<\/li>\n<li><b>El modelo de datos y la API que ofrece el<\/b> <strong>sistema<\/strong>: Cada sistema de datos tiene su propia forma de representar sus datos. La comodidad y facilidad con la que puedes integrar tus aplicaciones con el producto es un factor clave a tener en cuenta.<\/li>\n<li><b>Asistencia al cliente y documentaci\u00f3n en l\u00ednea<\/b>: En los casos en los que te encuentres con dificultades o necesites ayuda durante la integraci\u00f3n, la calidad y disponibilidad de la atenci\u00f3n al cliente y de una completa documentaci\u00f3n en l\u00ednea resultan cruciales.<\/li>\n<li><b>Disponibilidad de despliegue en la<\/b> <strong>nube<\/strong>: A medida que m\u00e1s empresas se pasan a la nube, es importante determinar si el producto de terceros puede desplegarse en la nube.<\/li>\n<\/ul>\n<p>En funci\u00f3n de estos factores, puedes decidir si construir una soluci\u00f3n de fragmentaci\u00f3n o pagar por una soluci\u00f3n que haga el trabajo pesado por ti.<\/p>\n<p>Hoy en d\u00eda, la mayor\u00eda de las bases de datos del mercado admiten la fragmentaci\u00f3n de bases de datos. Por ejemplo, bases de datos relacionales como MariaDB (que forma parte de la pila de servidores de alto rendimiento de <a href=\"https:\/\/kinsta.com\/es\/blog\/fragmentacion-de-la-base-de-datos\/\">Kinsta<\/a>) y <a href=\"https:\/\/kinsta.com\/es\/blog\/mongodb-vs-mysql\/\">bases de datos NoSQL<\/a> como MongoDB.<\/p>\n<h2>\u00bfQu\u00e9 Es el Sharding en MongoDB?<\/h2>\n<p>El objetivo principal de utilizar una base de datos NoSQL es su capacidad para hacer frente a las demandas inform\u00e1ticas y de almacenamiento que supone consultar y almacenar enormes vol\u00famenes de datos.<\/p>\n<p>Generalmente, una base de datos MongoDB contiene un gran n\u00famero de colecciones. Cada colecci\u00f3n consta de varios documentos que contienen datos en forma de pares clave-valor. Puedes dividir esta gran colecci\u00f3n en varias colecciones m\u00e1s peque\u00f1as utilizando el sharding MongoDB. Esto permite a MongoDB realizar consultas sin sobrecargar mucho el servidor.<\/p>\n<p>Por ejemplo, Telef\u00f3nica Tech gestiona m\u00e1s de <a href=\"https:\/\/www.mongodb.com\/customers\/telefonica\" target=\"_blank\" rel=\"noopener noreferrer\">30 millones de dispositivos IoT<\/a> en todo el mundo. Para seguir el ritmo del uso cada vez mayor de dispositivos, necesitaban una plataforma que pudiera escalar el\u00e1sticamente y gestionar un entorno de datos en r\u00e1pido crecimiento. La tecnolog\u00eda de fragmentaci\u00f3n de MongoDB era la opci\u00f3n adecuada para ellos, ya que era la que mejor se adaptaba a sus necesidades de coste y capacidad.<\/p>\n<p>Con la fragmentaci\u00f3n de MongoDB, Telef\u00f3nica Tech ejecuta m\u00e1s de 115.000 consultas por segundo. Eso son 30.000 inserciones en la base de datos por segundo, \u00a1con menos de un milisegundo de latencia!<\/p>\n<h2>Ventajas del sharding de MongoDB<\/h2>\n<p>Aqu\u00ed tienes algunas ventajas de la fragmentaci\u00f3n de MongoDB para datos a gran escala de las que puedes disfrutar:<\/p>\n<h3>Capacidad de almacenamiento<\/h3>\n<p>Ya hemos visto que la fragmentaci\u00f3n distribuye los datos entre los fragmentos del cl\u00faster. Esta distribuci\u00f3n permite que cada shard contenga un fragmento de los datos totales del cl\u00faster. Los fragmentos adicionales aumentar\u00e1n la capacidad de almacenamiento del cl\u00faster a medida que aumente el tama\u00f1o de tu conjunto de datos.<\/p>\n<h3>Lecturas\/Escrituras<\/h3>\n<p>MongoDB distribuye la carga de trabajo de lectura y escritura entre los fragmentos de un cl\u00faster fragmentado, permitiendo que cada fragmento procese un subconjunto de las operaciones del cl\u00faster. Ambas cargas de trabajo pueden escalarse horizontalmente en el cl\u00faster a\u00f1adiendo m\u00e1s fragmentos.<\/p>\n<h3>Alta disponibilidad<\/h3>\n<p>El despliegue de shards y servidores de configuraci\u00f3n como conjuntos de r\u00e9plica ofrece una mayor disponibilidad. Ahora, incluso si uno o m\u00e1s conjuntos de r\u00e9plicas de fragmentos dejan de estar disponibles por completo, el cl\u00faster fragmentado puede realizar lecturas y escrituras parciales.<\/p>\n<h3>Protecci\u00f3n ante una interrupci\u00f3n<\/h3>\n<p>Muchos usuarios se ven afectados si una m\u00e1quina muerde el polvo debido a una interrupci\u00f3n no planificada. En un sistema no fragmentado, como toda la base de datos se habr\u00eda ca\u00eddo, el impacto es masivo. El radio de explosi\u00f3n de la mala experiencia\/impacto del usuario puede contenerse mediante el sharding MongoDB.<\/p>\n<h3>Geo-Distribuci\u00f3n y Rendimiento<\/h3>\n<p>Los shards replicados pueden colocarse en diferentes regiones. Esto significa que se puede proporcionar a los clientes un acceso de baja latencia a sus datos, es decir, redirigir las peticiones de los consumidores al shard m\u00e1s cercano a ellos. En funci\u00f3n de la pol\u00edtica de gobierno de datos de una regi\u00f3n, se pueden configurar fragmentos espec\u00edficos para colocarlos en una regi\u00f3n concreta.<\/p>\n<h2>Componentes de los Clusters Sharded de MongoDB<\/h2>\n<p>Una vez explicado el concepto de cl\u00faster fragmentado MongoDB, vamos a profundizar en los componentes que integran dichos cl\u00fasteres.<\/p>\n<div><\/div><kinsta-auto-toc list-style=\"decimal\" selector=\"h3\" count-number=\"3\" sub-toc=\"true\"><\/kinsta-auto-toc>\n<h3>1. Shard<\/h3>\n<p>Cada shard tiene un subconjunto de datos fragmentados. A partir de MongoDB 3.6, los shards deben desplegarse como un conjunto de r\u00e9plicas para proporcionar alta disponibilidad y redundancia.<\/p>\n<p>Cada base de datos del cl\u00faster fragmentado tiene un fragmento primario que contendr\u00e1 todas las colecciones no fragmentadas de esa base de datos. El shard primario no est\u00e1 relacionado con el primario de un conjunto de r\u00e9plicas.<\/p>\n<p>Para cambiar el shard primario de una base de datos, puedes utilizar el comando <code>movePrimary<\/code>. El proceso de migraci\u00f3n del shard primario puede tardar bastante tiempo en completarse.<\/p>\n<p>Durante ese tiempo, no debes intentar acceder a las colecciones asociadas a la base de datos hasta que finalice el proceso de migraci\u00f3n. Este proceso podr\u00eda afectar a las operaciones generales del cl\u00faster en funci\u00f3n de la cantidad de datos que se migren.<\/p>\n<p>Puedes utilizar el m\u00e9todo <code>sh.status()<\/code> de <strong>mongosh<\/strong> para consultar la vista general del cl\u00faster. Este m\u00e9todo te devolver\u00e1 el fragmento principal de la base de datos junto con la distribuci\u00f3n de fragmentos entre los fragmentos.<\/p>\n<h3>2. Servidores de configuraci\u00f3n<\/h3>\n<p>Desplegar servidores de configuraci\u00f3n para clusters fragmentados como conjuntos de r\u00e9plicas mejorar\u00eda la consistencia en el servidor de configuraci\u00f3n. Esto se debe a que MongoDB puede aprovechar los protocolos est\u00e1ndar de lectura y escritura de conjuntos de r\u00e9plica para los datos de configuraci\u00f3n.<\/p>\n<p>Para desplegar servidores de configuraci\u00f3n como un conjunto de r\u00e9plica, tendr\u00e1s que ejecutar el motor de almacenamiento WiredTiger. WiredTiger utiliza el control de concurrencia a nivel de documento para sus operaciones de escritura. Por tanto, varios clientes pueden modificar distintos documentos de una colecci\u00f3n al mismo tiempo.<\/p>\n<p>Los servidores de configuraci\u00f3n almacenan los metadatos de un cluster fragmentado en la base de datos de configuraci\u00f3n. Para acceder a la base de datos config, puedes utilizar el siguiente comando en el shell de mongo:<\/p>\n<pre><code class=\"language-bash\"><code>use config<\/code><\/code><\/pre>\n<p>Aqu\u00ed tienes algunas restricciones que debes tener en cuenta:<\/p>\n<ul>\n<li>Una configuraci\u00f3n de conjunto de r\u00e9plicas utilizada para servidores config debe tener cero \u00e1rbitros. Un \u00e1rbitro participa en una elecci\u00f3n para el primario, pero no tiene una copia del conjunto de datos y no puede convertirse en el primario.<\/li>\n<li>Este conjunto de r\u00e9plicas no puede tener miembros retrasados. Los miembros retrasados tienen copias del conjunto de datos del conjunto de r\u00e9plica. Pero el conjunto de datos de un miembro retrasado contiene un estado anterior o retrasado del conjunto de datos.<\/li>\n<li>Necesitas crear \u00edndices para los servidores de configuraci\u00f3n. En pocas palabras, ning\u00fan miembro debe tener la configuraci\u00f3n <code>members[n].buildIndexes<\/code> establecida en <code>false<\/code>.<\/li>\n<\/ul>\n<p>Si el conjunto de r\u00e9plicas del servidor config pierde a su miembro principal y no puede elegir uno, los metadatos del cl\u00faster pasan a ser de s\u00f3lo lectura. Seguir\u00e1s pudiendo leer y escribir en los fragmentos, pero no se producir\u00e1n divisiones de fragmentos ni migraciones hasta que el conjunto de r\u00e9plicas pueda elegir un primario.<\/p>\n<h3>3. Enrutadores de consultas<\/h3>\n<p>Las instancias mongos de MongoDB pueden servir como enrutadores de consultas, permitiendo que las aplicaciones cliente y los clusters fragmentados se conecten f\u00e1cilmente.<\/p>\n<p>A partir de MongoDB 4.4, mongos puede soportar lecturas cubiertas para reducir las latencias. Con las lecturas cubiertas, las instancias de mongos enviar\u00e1n operaciones de lectura a dos miembros del conjunto de r\u00e9plicas por cada fragmento consultado. Entonces devolver\u00e1 los resultados del primer respondedor por fragmento.<\/p>\n<p>He aqu\u00ed c\u00f3mo interact\u00faan los tres componentes en un cl\u00faster fragmentado:<\/p>\n<figure id=\"attachment_157236\" aria-describedby=\"caption-attachment-157236\" style=\"width: 1132px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/06\/Interaction-of-Sharded-Cluster-Components.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-157236 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/06\/Interaction-of-Sharded-Cluster-Components.png\" alt=\"Interacci\u00f3n de los componentes de un cl\u00faster fragmentado\" width=\"1132\" height=\"655\"><\/a><figcaption id=\"caption-attachment-157236\" class=\"wp-caption-text\">Interacci\u00f3n de los componentes de un cl\u00faster fragmentado (Fuente de la imagen: <a href=\"https:\/\/www.mongodb.com\/docs\/manual\/sharding\/\" target=\"_blank\" rel=\"noopener noreferrer\">MongoDB Sharding<\/a>)<\/figcaption><\/figure>\n<p>Una instancia de mongos dirigir\u00e1 una consulta a un cl\u00faster por:<\/p>\n<ol>\n<li>Comprobando la lista de shards que deben recibir la consulta.<\/li>\n<li>Establecer un cursor en todos los shards objetivo.<\/li>\n<\/ol>\n<p>A continuaci\u00f3n, mongos fusionar\u00e1 los datos de cada fragmento objetivo y devolver\u00e1 el documento resultante. Algunos modificadores de la consulta, como la ordenaci\u00f3n, se ejecutan en cada fragmento antes de que los mongos recuperen los resultados.<\/p>\n<p>En algunos casos, cuando la clave de fragmento o un prefijo de clave de fragmento forma parte de la consulta, mongos ejecutar\u00e1 una operaci\u00f3n planificada previamente, dirigiendo las consultas a una subclase de fragmentos del cl\u00faster.<\/p>\n<p>Para un <strong>cl\u00faster<\/strong> <b>de producci\u00f3n<\/b>, aseg\u00farate de que los datos son redundantes y de que tus sistemas est\u00e1n altamente disponibles. Puedes elegir la siguiente configuraci\u00f3n para un despliegue de cl\u00faster con fragmentos de producci\u00f3n:<\/p>\n<ul>\n<li>Despliega cada shard como un conjunto de r\u00e9plicas de 3 miembros<\/li>\n<li>Despliega servidores de configuraci\u00f3n como un conjunto de r\u00e9plicas de 3 miembros<\/li>\n<li>Despliega uno o m\u00e1s routers mongos<\/li>\n<\/ul>\n<p>Para un <b>cl\u00faster que no sea de producci\u00f3n<\/b>, puedes desplegar un cl\u00faster fragmentado con los siguientes componentes:<\/p>\n<ul>\n<li>Un conjunto de r\u00e9plica de shard \u00fanico<\/li>\n<li>Un servidor de configuraci\u00f3n del conjunto de r\u00e9plicas<\/li>\n<li>Una instancia de mongos<\/li>\n<\/ul>\n<h2>\u00bfC\u00f3mo Funciona el Sharding de MongoDB?<\/h2>\n<p>Ahora que hemos hablado de los distintos componentes de un cl\u00faster fragmentado, es hora de que nos sumerjamos en el proceso.<\/p>\n<p>Para fragmentar los datos en varios servidores, utilizar\u00e1s mongos. Cuando te conectes para enviar las consultas a MongoDB, mongos buscar\u00e1 y encontrar\u00e1 d\u00f3nde residen los datos. A continuaci\u00f3n, los obtendr\u00e1 del servidor correcto y lo fusionar\u00e1 todo si estaba dividido en varios servidores.<\/p>\n<p>Como de eso se encargar\u00e1 el <a href=\"https:\/\/kinsta.com\/es\/blog\/desarrollador-de-backend\/\">backend<\/a>, no tendr\u00e1s que hacer nada en el lado de la aplicaci\u00f3n. MongoDB actuar\u00e1 como si fuera una conexi\u00f3n de consulta normal. Tu cliente se conectar\u00e1 a mongos, y el servidor de configuraci\u00f3n se encargar\u00e1 del resto.<\/p>\n<h2>\u00bfC\u00f3mo Configurar MongoDB Sharding Paso a Paso?<\/h2>\n<p>Configurar el Sharding de MongoDB es un proceso que implica varios pasos para garantizar un cl\u00faster de base de datos estable y eficiente. Aqu\u00ed tienes instrucciones detalladas paso a paso sobre c\u00f3mo configurar el Sharding de MongoDB.<\/p>\n<p>Antes de empezar, es importante tener en cuenta que para configurar el Sharding en MongoDB, necesitar\u00e1s tener al menos tres servidores: uno para el servidor de configuraci\u00f3n, uno para la instancia de mongos y uno o m\u00e1s para los fragmentos.<\/p>\n<div><\/div><kinsta-auto-toc list-style=\"decimal\" selector=\"h3\" count-number=\"6\" sub-toc=\"true\"><\/kinsta-auto-toc>\n<h3>1. Crear un directorio desde el servidor de configuraci\u00f3n<\/h3>\n<p>Para empezar, crearemos un directorio para los datos del servidor de configuraci\u00f3n. Esto se puede hacer ejecutando el siguiente comando en el primer servidor:<\/p>\n<pre><code class=\"language-bash\"> mkdir \/data\/configdb<\/code><\/pre>\n<h3>2. Iniciar MongoDB en modo configuraci\u00f3n<\/h3>\n<p>A continuaci\u00f3n, iniciaremos MongoDB en modo configuraci\u00f3n en el primer servidor utilizando el siguiente comando:<\/p>\n<pre><code class=\"language-bash\">mongod --configsvr --dbpath \/data\/configdb --port 27019<\/code><\/pre>\n<p>Esto iniciar\u00e1 el servidor config en <code>port 27019 <\/code> y almacenar\u00e1 sus datos en el directorio <strong>\/data\/configdb<\/strong>. Ten en cuenta que estamos utilizando la bandera <code>--configsvr<\/code> para indicar que este servidor se utilizar\u00e1 como servidor de configuraci\u00f3n.<\/p>\n<h3>3. Iniciar la Instancia Mongos<\/h3>\n<p>El siguiente paso es iniciar la instancia de mongos. Este proceso dirigir\u00e1 las consultas a los shards correctos en funci\u00f3n de la clave de sharding. Para iniciar la instancia de mongos, utiliza el siguiente comando:<\/p>\n<pre><code class=\"language-bash\">mongos --configdb &lt;config server&gt;:27019<\/code><\/pre>\n<p>Sustituye <code>&lt;config server&gt;<\/code> por la direcci\u00f3n IP o el nombre de host de la m\u00e1quina donde se ejecuta el servidor de configuraci\u00f3n.<\/p>\n<h3>4. Conectarse a la instancia de Mongos<\/h3>\n<p>Una vez que la instancia de mongos se est\u00e1 ejecutando, podemos conectarnos a ella utilizando la shell de MongoDB. Esto puede hacerse ejecutando el siguiente comando:<\/p>\n<pre><code class=\"language-markdown\">mongo --host &lt;mongos-server&gt; --port 27017<\/code><\/pre>\n<p>En este comando, <code>&lt;mongos-server&gt;<\/code> debe sustituirse por el nombre de host o la direcci\u00f3n IP del servidor que ejecuta la instancia de mongos. Esto abrir\u00e1 la shell de MongoDB, permiti\u00e9ndonos interactuar con la instancia de mongos y a\u00f1adir servidores al cl\u00faster.<\/p>\n<p>Sustituye<code>&lt;mongos-server&gt;<\/code> por la direcci\u00f3n IP o el nombre de host de la m\u00e1quina donde se ejecuta la instancia de mongos.<\/p>\n<h3>5. A\u00f1adir servidores a los clusters<\/h3>\n<p>Ahora que estamos conectados a la instancia de mongos, podemos a\u00f1adir servidores al cl\u00faster ejecutando el siguiente comando:<\/p>\n<pre><code class=\"language-markdown\">sh.addShard(\"&lt;shard-server&gt;:27017\")<\/code><\/pre>\n<p>En este comando, <code>&lt;shard-server&gt;<\/code> debe sustituirse por el nombre de host o la direcci\u00f3n IP del servidor que ejecuta el fragmento. Este comando a\u00f1adir\u00e1 el shard al cl\u00faster y lo har\u00e1 disponible para su uso.<\/p>\n<p>Repite este paso para cada fragmento que quieras a\u00f1adir al cl\u00faster.<\/p>\n<h3>6. Activar el\u00a0Sharding de la base de datos<\/h3>\n<p>Por \u00faltimo, habilitaremos la fragmentaci\u00f3n para una base de datos ejecutando el siguiente comando:<\/p>\n<pre><code class=\"language-markdown\">sh.enableSharding(\"&lt;database&gt;\")<\/code><\/pre>\n<p>En este comando, <code>&lt;database&gt;<\/code> debe sustituirse por el nombre de la base de datos que deseas fragmentar. Esto activar\u00e1 la fragmentaci\u00f3n de la base de datos especificada, permiti\u00e9ndote distribuir sus datos en varios fragmentos.<\/p>\n<p>\u00a1Y listo! Siguiendo estos pasos, ahora deber\u00edas tener un cl\u00faster fragmentado MongoDB completamente funcional, listo para escalar horizontalmente y manejar cargas de alto tr\u00e1fico.<\/p>\n<h2>Buenas Pr\u00e1cticas para el Sharding de MongoDB<\/h2>\n<p>Aunque hayamos configurado nuestro cl\u00faster fragmentado, es esencial supervisar y mantener el cl\u00faster con regularidad para garantizar un <a href=\"https:\/\/kinsta.com\/es\/blog\/herramientas-apm\/\">rendimiento<\/a> \u00f3ptimo. Algunas de las mejores pr\u00e1cticas para la fragmentaci\u00f3n de MongoDB son:<\/p>\n<div><\/div><kinsta-auto-toc list-style=\"decimal\" selector=\"h3\" count-number=\"7\" sub-toc=\"true\"><\/kinsta-auto-toc>\n<h3>1. Determinar la clave de shard correcta<\/h3>\n<p>La clave de shard es un factor cr\u00edtico en la fragmentaci\u00f3n de MongoDB que determina c\u00f3mo se distribuyen los datos entre los shards. Es importante elegir una clave de shard que distribuya uniformemente los datos entre los fragmentos y admita las consultas m\u00e1s habituales. Debes evitar elegir una clave de shard que provoque puntos calientes, o una distribuci\u00f3n desigual de los datos, ya que esto puede provocar problemas de rendimiento.<\/p>\n<p>Para elegir la clave de shard adecuada, debes analizar tus datos y los tipos de consultas que vas a realizar, y seleccionar una clave que satisfaga esos requisitos.<\/p>\n<h3>2. Planifica el crecimiento de los datos<\/h3>\n<p>Cuando configures tu cl\u00faster fragmentado, planifica el crecimiento futuro empezando con suficientes fragmentos para gestionar tu carga de trabajo actual y a\u00f1adiendo m\u00e1s seg\u00fan sea necesario. Aseg\u00farate de que tu infraestructura de hardware y red puede soportar el n\u00famero de shards y la cantidad de datos que esperas tener en el futuro.<\/p>\n<h3>3. Utiliza hardware dedicado para los shards<\/h3>\n<p>Utiliza hardware dedicado para cada fragmento para obtener un rendimiento y una fiabilidad \u00f3ptimas. Cada fragmento debe tener su propio servidor o m\u00e1quina virtual, para que pueda utilizar todos los recursos sin interferencias.<\/p>\n<p>Utilizar hardware compartido puede provocar contenci\u00f3n de recursos y degradaci\u00f3n del rendimiento, afectando a la fiabilidad general del sistema.<\/p>\n<h3>4. Utiliza conjuntos de r\u00e9plica para los servidores de fragmentos<\/h3>\n<p>Utilizar conjuntos de r\u00e9plicas para los servidores de fragmentos proporciona alta disponibilidad y tolerancia a fallos para tu cl\u00faster de fragmentos MongoDB. Cada conjunto de r\u00e9plicas debe tener tres o m\u00e1s miembros, y cada miembro debe residir en una m\u00e1quina f\u00edsica independiente. Esta configuraci\u00f3n garantiza que tu cl\u00faster fragmentado pueda sobrevivir al fallo de un \u00fanico servidor o miembro del conjunto de r\u00e9plicas.<\/p>\n<h3>5. Supervisar el rendimiento de los shards<\/h3>\n<p>Supervisar el rendimiento de tus shards es crucial para identificar los problemas antes de que se conviertan en problemas graves. Debes controlar la CPU, la memoria, la E\/S de disco y la E\/S de red de cada servidor fragmentado para asegurarte de que el fragmentado puede gestionar la carga de trabajo.<\/p>\n<p>Puedes utilizar las herramientas de monitorizaci\u00f3n integradas en MongoDB, como <a href=\"https:\/\/www.mongodb.com\/docs\/database-tools\/mongostat\/\" target=\"_blank\" rel=\"noopener noreferrer\">mongostat<\/a> y <a href=\"https:\/\/www.mongodb.com\/docs\/database-tools\/mongotop\/\" target=\"_blank\" rel=\"noopener noreferrer\">mongotop<\/a>, o herramientas de monitorizaci\u00f3n de terceros, como Datadog, Dynatrace y Zabbix, para hacer un seguimiento del rendimiento de los fragmentos.<\/p>\n<h3>6. Planifica la recuperaci\u00f3n ante desastres<\/h3>\n<p>Planificar la recuperaci\u00f3n ante desastres es esencial para mantener la fiabilidad de tu cl\u00faster fragmentado MongoDB. Debes tener un plan de recuperaci\u00f3n ante desastres que incluya copias de seguridad peri\u00f3dicas, pruebas de las copias de seguridad para garantizar que son v\u00e1lidas, y un plan para restaurar las copias de seguridad en caso de fallo.<\/p>\n<h3>7. Utiliza la fragmentaci\u00f3n basada en hash cuando sea apropiado<\/h3>\n<p>Cuando las aplicaciones realizan consultas basadas en rangos, la fragmentaci\u00f3n basada en rangos es beneficiosa porque las operaciones pueden limitarse a menos fragmentos, en la mayor\u00eda de los casos a un \u00fanico fragmento. Necesitas entender tus datos y los patrones de consulta para implementar esto.<\/p>\n<p>La fragmentaci\u00f3n en hash garantiza una distribuci\u00f3n uniforme de lecturas y escrituras. Sin embargo, no proporciona operaciones eficientes basadas en rangos.<\/p>\n<h2>\u00bfCu\u00e1les Son los Errores M\u00e1s Comunes que Debes Evitar al Fragmentar tu Base de Datos MongoDB?<\/h2>\n<p>El sharding de MongoDB es una potente t\u00e9cnica que puede ayudarte a escalar tu base de datos horizontalmente y distribuir los datos entre varios servidores. Sin embargo, hay varios errores comunes que debes evitar al fragmentar tu base de datos MongoDB. A continuaci\u00f3n te mostramos algunos de los errores m\u00e1s comunes y c\u00f3mo evitarlos.<\/p>\n<div><\/div><kinsta-auto-toc list-style=\"decimal\" selector=\"h3\" count-number=\"7\" sub-toc=\"true\"><\/kinsta-auto-toc>\n<h3>1. Elegir la clave de shard incorrecta<\/h3>\n<p>Una de las decisiones m\u00e1s cruciales que tomar\u00e1s al fragmentar tu base de datos MongoDB es elegir la clave de shard. La clave de shard determina c\u00f3mo se distribuyen los datos entre los fragmentos, y elegir una clave incorrecta puede provocar una distribuci\u00f3n desigual de los datos, puntos calientes y un rendimiento deficiente.<\/p>\n<p>Un error com\u00fan es elegir un valor de clave de fragmentaci\u00f3n que s\u00f3lo aumente para los nuevos documentos cuando se utiliza la fragmentaci\u00f3n basada en rangos, en lugar de la fragmentaci\u00f3n en hash. Por ejemplo, una marca de tiempo (naturalmente) o cualquier cosa con un componente temporal como componente m\u00e1s fundamental, como ObjectID (los cuatro primeros bytes son una marca de tiempo).<\/p>\n<p>Si seleccionas una clave de shard, todas las inserciones ir\u00e1n al fragmento con m\u00e1s rango. Aunque sigas a\u00f1adiendo nuevos fragmentos, tu capacidad m\u00e1xima de escritura nunca aumentar\u00e1.<\/p>\n<p>Si planeas escalar por capacidad de escritura, prueba a utilizar una clave de fragmento basada en hash, que permitir\u00e1 utilizar el mismo campo a la vez que proporciona una buena escalabilidad de escritura.<\/p>\n<h3>2. Intentar cambiar el valor de la clave de shard<\/h3>\n<p>Las claves de shard son inmutables para un documento existente, lo que significa que no puedes cambiar la clave. Puedes hacer ciertas actualizaciones antes de la fragmentaci\u00f3n, pero no despu\u00e9s. Si intentas modificar la clave de fragmento de un documento existente, se producir\u00e1 el siguiente error:<\/p>\n<pre><code class=\"language-markdown\">cannot modify shard key's value fieldid for collection: collectionname<\/code><\/pre>\n<p>Puedes eliminar y volver a insertar el documento para renovar la clave de fragmento en lugar de intentar modificarla.<\/p>\n<h3>3. Error al supervisar el cl\u00faster<\/h3>\n<p>La fragmentaci\u00f3n introduce una complejidad adicional en el entorno de la base de datos, por lo que es esencial supervisar de cerca el cl\u00faster. No supervisar el cl\u00faster puede provocar problemas de rendimiento, p\u00e9rdida de datos y otros problemas.<\/p>\n<p>Para evitar este error, debes configurar herramientas de supervisi\u00f3n para realizar un seguimiento de las m\u00e9tricas clave, como el uso de la CPU, la memoria, el espacio en disco y el tr\u00e1fico de red. Tambi\u00e9n debes configurar alertas cuando se superen determinados umbrales.<\/p>\n<h3>4. Esperar demasiado para a\u00f1adir un nuevo shard (sobrecargado)<\/h3>\n<p>Un error com\u00fan que debes evitar al fragmentar tu base de datos MongoDB es esperar demasiado para a\u00f1adir un nuevo shard. Cuando un fragmento se sobrecarga con datos o consultas, puede provocar problemas de rendimiento y ralentizar todo el cl\u00faster.<\/p>\n<p>Supongamos que tienes un cl\u00faster imaginario formado por 2 shard, con 20000 chunks (5000 considerados \u00abactivos\u00bb), y necesitamos a\u00f1adir un 3er shard. Este 3er shard acabar\u00e1 almacenando un tercio de los fragmentos activos (y del total de fragmentos).<\/p>\n<p>El reto consiste en averiguar cu\u00e1ndo el fragmento deja de a\u00f1adir sobrecarga y se convierte en un activo. Tendr\u00edamos que calcular la carga que producir\u00eda el sistema al migrar los fragmentos activos al nuevo fragmento y cu\u00e1ndo ser\u00eda insignificante en comparaci\u00f3n con la ganancia global del sistema.<\/p>\n<p>En la mayor\u00eda de los escenarios, es relativamente f\u00e1cil imaginar que este conjunto de migraciones tardar\u00eda a\u00fan m\u00e1s en un conjunto de fragmentos sobrecargados, y que nuestro fragmento reci\u00e9n a\u00f1adido tardar\u00eda mucho m\u00e1s en cruzar el umbral y convertirse en una ganancia neta. Por ello, es mejor ser proactivo y a\u00f1adir capacidad antes de que sea necesario.<\/p>\n<p>Entre las posibles estrategias de mitigaci\u00f3n se incluyen la supervisi\u00f3n peri\u00f3dica del cl\u00faster y la adici\u00f3n proactiva de nuevos fragmentos en momentos de poco tr\u00e1fico, para que haya menos competencia por los recursos. Se sugiere equilibrar manualmente los shard \u00abcalientes\u00bb (a los que se accede m\u00e1s que a otros) para trasladar la actividad al nuevo fragmento m\u00e1s r\u00e1pidamente.<\/p>\n<h3>5. Infraprovisi\u00f3n de servidores de configuraci\u00f3n<\/h3>\n<p>Si los servidores de configuraci\u00f3n est\u00e1n infraaprovisionados, pueden producirse problemas de rendimiento e inestabilidad. La infradotaci\u00f3n puede deberse a una asignaci\u00f3n insuficiente de recursos, como CPU, memoria o almacenamiento.<\/p>\n<p>Esto puede provocar un rendimiento lento de las consultas, tiempos de espera e incluso fallos. Para evitarlo, es esencial asignar suficientes recursos a los servidores de configuraci\u00f3n, especialmente en clusters grandes. Supervisar regularmente el uso de recursos de los servidores de configuraci\u00f3n puede ayudar a identificar problemas de infradotaci\u00f3n.<\/p>\n<p>Otra forma de evitarlo es utilizar hardware dedicado para los servidores de configuraci\u00f3n, en lugar de compartir recursos con otros componentes del cl\u00faster. Esto puede ayudar a garantizar que los servidores de configuraci\u00f3n tengan suficientes recursos para manejar su carga de trabajo.<\/p>\n<h3>6. No hacer copias de seguridad ni restaurar los datos<\/h3>\n<p>Las copias de seguridad son esenciales para garantizar que los datos no se pierdan en caso de fallo. La p\u00e9rdida de datos puede producirse por varias razones, como fallos del hardware, errores humanos y ataques malintencionados.<\/p>\n<p>No hacer copias de seguridad y restaurar los datos puede provocar su p\u00e9rdida y el tiempo de inactividad. Para evitar este error, debes establecer una estrategia de copia de <a href=\"https:\/\/kinsta.com\/es\/blog\/hacer-backup-base-de-datos-mysql-con-phpmyadmin\/\">seguridad<\/a> y restauraci\u00f3n que incluya copias de seguridad peri\u00f3dicas, copias de seguridad de prueba y restauraci\u00f3n de datos en un entorno de prueba.<\/p>\n<h3>7. No probar el cl\u00faster fragmentado<\/h3>\n<p>Antes de desplegar tu cluster fragmentado en producci\u00f3n, debes probarlo a fondo para asegurarte de que puede manejar la carga y las consultas esperadas. No probar el cl\u00faster fragmentado puede provocar un rendimiento deficiente y fallos.<\/p>\n<h2>MongoDB Sharding vs \u00cdndices Agrupados: \u00bfCu\u00e1l Es M\u00e1s Eficaz para Grandes Conjuntos de Datos?<\/h2>\n<p>Tanto el sharding como los \u00edndices agrupados de MongoDB son estrategias eficaces para manejar grandes conjuntos de datos. Pero sirven para fines distintos. Elegir el enfoque adecuado depende de los requisitos espec\u00edficos de tu aplicaci\u00f3n.<\/p>\n<p>El sharding es una t\u00e9cnica de escalado horizontal que distribuye los datos entre muchos nodos, lo que la convierte en una soluci\u00f3n eficaz para manejar grandes conjuntos de datos con altas tasas de escritura. Es transparente para las aplicaciones, permiti\u00e9ndoles interactuar con MongoDB como si fuera un \u00fanico servidor.<\/p>\n<p>Por otro lado, los \u00edndices agrupados mejoran el rendimiento de las consultas que recuperan datos de grandes conjuntos de datos, ya que permiten a MongoDB localizar los datos de forma m\u00e1s eficiente cuando una consulta coincide con el campo indexado.<\/p>\n<p>Entonces, \u00bfcu\u00e1l es m\u00e1s eficaz para los grandes conjuntos de datos? La respuesta depende del caso de uso espec\u00edfico y de los requisitos de la carga de trabajo.<\/p>\n<p>Si la aplicaci\u00f3n requiere un alto rendimiento de escritura y consulta, y necesita escalar horizontalmente, entonces el sharding de MongoDB es probablemente la mejor opci\u00f3n. Sin embargo, los \u00edndices agrupados pueden ser m\u00e1s eficaces si la aplicaci\u00f3n tiene una carga de trabajo de lectura pesada y requiere que los datos consultados con frecuencia se organicen en un orden espec\u00edfico.<\/p>\n<p>Tanto la fragmentaci\u00f3n como los \u00edndices agrupados son herramientas potentes para <a href=\"https:\/\/kinsta.com\/es\/blog\/adminer\/\">gestionar<\/a> grandes conjuntos de datos en MongoDB. La clave est\u00e1 en evaluar cuidadosamente los requisitos de tu aplicaci\u00f3n y las caracter\u00edsticas de la carga de trabajo para determinar el mejor enfoque para tu caso de uso espec\u00edfico.<\/p>\n<h2>Resumen<\/h2>\n<p>Un cl\u00faster fragmentado es una potente arquitectura que puede gestionar grandes cantidades de datos y escalar horizontalmente para satisfacer las necesidades de las aplicaciones en crecimiento. El cl\u00faster consta de shard, servidores de configuraci\u00f3n, procesos mongos y aplicaciones cliente, y los datos se particionan en funci\u00f3n de una clave de shard elegida cuidadosamente para garantizar una distribuci\u00f3n y consulta eficientes.<\/p>\n<p>Aprovechando la potencia de la fragmentaci\u00f3n, las aplicaciones pueden lograr una alta disponibilidad, un rendimiento mejorado y un uso eficiente de los recursos de hardware. Elegir la clave de fragmentaci\u00f3n adecuada es crucial para la distribuci\u00f3n uniforme de los datos.<\/p>\n<p><em>\u00bfQu\u00e9 opinas sobre MongoDB y la pr\u00e1ctica del\u00a0Sharding de bases de datos? \u00bfHay alg\u00fan aspecto de la fragmentaci\u00f3n que crees que deber\u00edamos haber tratado? H\u00e1znoslo saber en los comentarios<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>En un mundo basado en los datos como el actual, en el que el volumen y la complejidad de los datos siguen creciendo a un ritmo &#8230;<\/p>\n","protected":false},"author":199,"featured_media":68939,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[1337],"class_list":["post-68938","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","topic-herramientas-de-desarrollo-web"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>MongoDB Sharding: Una Gu\u00eda Completa<\/title>\n<meta name=\"description\" content=\"MongoDB Sharding permite a MongoDB realizar consultas sin sobrecargar el servidor y dividiendo las colecciones.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinsta.com\/es\/blog\/mongodb-sharding\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"La Gu\u00eda Completa Para Comprender MongoDB Sharding\" \/>\n<meta property=\"og:description\" content=\"MongoDB Sharding permite a MongoDB realizar consultas sin sobrecargar el servidor y dividiendo las colecciones.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/es\/blog\/mongodb-sharding\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinsta.es\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-08-08T09:54:48+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-01-17T12:43:36+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/08\/mongodb-sharding.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1460\" \/>\n\t<meta property=\"og:image:height\" content=\"730\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Jeremy Holcombe\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"MongoDB Sharding permite a MongoDB realizar consultas sin sobrecargar el servidor y dividiendo las colecciones.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/08\/mongodb-sharding.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@Kinsta_ES\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_ES\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jeremy Holcombe\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"20 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/es\/blog\/mongodb-sharding\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/mongodb-sharding\/\"},\"author\":{\"name\":\"Jeremy Holcombe\",\"@id\":\"https:\/\/kinsta.com\/es\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21\"},\"headline\":\"La Gu\u00eda Completa Para Comprender MongoDB Sharding\",\"datePublished\":\"2023-08-08T09:54:48+00:00\",\"dateModified\":\"2025-01-17T12:43:36+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/mongodb-sharding\/\"},\"wordCount\":4671,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/es\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/mongodb-sharding\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/08\/mongodb-sharding.jpg\",\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/es\/blog\/mongodb-sharding\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/es\/blog\/mongodb-sharding\/\",\"url\":\"https:\/\/kinsta.com\/es\/blog\/mongodb-sharding\/\",\"name\":\"MongoDB Sharding: Una Gu\u00eda Completa\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/es\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/mongodb-sharding\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/mongodb-sharding\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/08\/mongodb-sharding.jpg\",\"datePublished\":\"2023-08-08T09:54:48+00:00\",\"dateModified\":\"2025-01-17T12:43:36+00:00\",\"description\":\"MongoDB Sharding permite a MongoDB realizar consultas sin sobrecargar el servidor y dividiendo las colecciones.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/mongodb-sharding\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/es\/blog\/mongodb-sharding\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/kinsta.com\/es\/blog\/mongodb-sharding\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/08\/mongodb-sharding.jpg\",\"contentUrl\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/08\/mongodb-sharding.jpg\",\"width\":1460,\"height\":730},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/es\/blog\/mongodb-sharding\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/es\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Herramientas de Desarrollo Web\",\"item\":\"https:\/\/kinsta.com\/es\/secciones\/herramientas-de-desarrollo-web\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"La Gu\u00eda Completa Para Comprender MongoDB Sharding\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/es\/#website\",\"url\":\"https:\/\/kinsta.com\/es\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Soluciones de alojamiento premium, r\u00e1pidas y seguras\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/es\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/es\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/es\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/es\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/kinsta.com\/es\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/es\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinsta.es\/\",\"https:\/\/x.com\/Kinsta_ES\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinsta.com\/es\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21\",\"name\":\"Jeremy Holcombe\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/kinsta.com\/es\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/0e17001f3bb37dbbe54fceef9bb547fa?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/0e17001f3bb37dbbe54fceef9bb547fa?s=96&d=mm&r=g\",\"caption\":\"Jeremy Holcombe\"},\"description\":\"Senior Editor at Kinsta, WordPress Web Developer, and Content Writer. Outside of all things WordPress, I enjoy the beach, golf, and movies. I also have tall people problems.\",\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/jeremyholcombe\/\"],\"url\":\"https:\/\/kinsta.com\/es\/blog\/author\/jeremyholcombe\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"MongoDB Sharding: Una Gu\u00eda Completa","description":"MongoDB Sharding permite a MongoDB realizar consultas sin sobrecargar el servidor y dividiendo las colecciones.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kinsta.com\/es\/blog\/mongodb-sharding\/","og_locale":"es_ES","og_type":"article","og_title":"La Gu\u00eda Completa Para Comprender MongoDB Sharding","og_description":"MongoDB Sharding permite a MongoDB realizar consultas sin sobrecargar el servidor y dividiendo las colecciones.","og_url":"https:\/\/kinsta.com\/es\/blog\/mongodb-sharding\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinsta.es\/","article_published_time":"2023-08-08T09:54:48+00:00","article_modified_time":"2025-01-17T12:43:36+00:00","og_image":[{"width":1460,"height":730,"url":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/08\/mongodb-sharding.jpg","type":"image\/jpeg"}],"author":"Jeremy Holcombe","twitter_card":"summary_large_image","twitter_description":"MongoDB Sharding permite a MongoDB realizar consultas sin sobrecargar el servidor y dividiendo las colecciones.","twitter_image":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/08\/mongodb-sharding.jpg","twitter_creator":"@Kinsta_ES","twitter_site":"@Kinsta_ES","twitter_misc":{"Escrito por":"Jeremy Holcombe","Tiempo de lectura":"20 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/es\/blog\/mongodb-sharding\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/es\/blog\/mongodb-sharding\/"},"author":{"name":"Jeremy Holcombe","@id":"https:\/\/kinsta.com\/es\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21"},"headline":"La Gu\u00eda Completa Para Comprender MongoDB Sharding","datePublished":"2023-08-08T09:54:48+00:00","dateModified":"2025-01-17T12:43:36+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/es\/blog\/mongodb-sharding\/"},"wordCount":4671,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/es\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/es\/blog\/mongodb-sharding\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/08\/mongodb-sharding.jpg","inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/es\/blog\/mongodb-sharding\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/es\/blog\/mongodb-sharding\/","url":"https:\/\/kinsta.com\/es\/blog\/mongodb-sharding\/","name":"MongoDB Sharding: Una Gu\u00eda Completa","isPartOf":{"@id":"https:\/\/kinsta.com\/es\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/es\/blog\/mongodb-sharding\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/es\/blog\/mongodb-sharding\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/08\/mongodb-sharding.jpg","datePublished":"2023-08-08T09:54:48+00:00","dateModified":"2025-01-17T12:43:36+00:00","description":"MongoDB Sharding permite a MongoDB realizar consultas sin sobrecargar el servidor y dividiendo las colecciones.","breadcrumb":{"@id":"https:\/\/kinsta.com\/es\/blog\/mongodb-sharding\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/es\/blog\/mongodb-sharding\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/kinsta.com\/es\/blog\/mongodb-sharding\/#primaryimage","url":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/08\/mongodb-sharding.jpg","contentUrl":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/08\/mongodb-sharding.jpg","width":1460,"height":730},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/es\/blog\/mongodb-sharding\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/es\/"},{"@type":"ListItem","position":2,"name":"Herramientas de Desarrollo Web","item":"https:\/\/kinsta.com\/es\/secciones\/herramientas-de-desarrollo-web\/"},{"@type":"ListItem","position":3,"name":"La Gu\u00eda Completa Para Comprender MongoDB Sharding"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/es\/#website","url":"https:\/\/kinsta.com\/es\/","name":"Kinsta\u00ae","description":"Soluciones de alojamiento premium, r\u00e1pidas y seguras","publisher":{"@id":"https:\/\/kinsta.com\/es\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/es\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/es\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/es\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/kinsta.com\/es\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/es\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinsta.es\/","https:\/\/x.com\/Kinsta_ES","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinsta.com\/es\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21","name":"Jeremy Holcombe","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/kinsta.com\/es\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/0e17001f3bb37dbbe54fceef9bb547fa?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0e17001f3bb37dbbe54fceef9bb547fa?s=96&d=mm&r=g","caption":"Jeremy Holcombe"},"description":"Senior Editor at Kinsta, WordPress Web Developer, and Content Writer. Outside of all things WordPress, I enjoy the beach, golf, and movies. I also have tall people problems.","sameAs":["https:\/\/www.linkedin.com\/in\/jeremyholcombe\/"],"url":"https:\/\/kinsta.com\/es\/blog\/author\/jeremyholcombe\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/posts\/68938","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/users\/199"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/comments?post=68938"}],"version-history":[{"count":12,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/posts\/68938\/revisions"}],"predecessor-version":[{"id":69234,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/posts\/68938\/revisions\/69234"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/68938\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/68938\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/68938\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/68938\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/68938\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/68938\/translations\/jp"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/68938\/translations\/nl"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/68938\/translations\/es"},{"href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/68938\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/media\/68939"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/media?parent=68938"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/tags?post=68938"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/topic?post=68938"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}