{"id":7277,"date":"2019-08-22T17:42:26","date_gmt":"2019-08-23T00:42:26","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=7277"},"modified":"2025-06-13T20:19:35","modified_gmt":"2025-06-14T03:19:35","slug":"primary-uses-for-couchbase-primary-index","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/es\/primary-uses-for-couchbase-primary-index\/","title":{"rendered":"Usos principales del \u00edndice primario de Couchbase"},"content":{"rendered":"<p>Un par de preguntas frecuentes sobre N1QL para el servicio de consultas:<\/p>\n<ol>\n<li>\u00bfCu\u00e1ndo se utiliza realmente un \u00edndice primario?<\/li>\n<li>\u00bfPor qu\u00e9 la <a href=\"https:\/\/www.couchbase.com\/blog\/es\/n1ql-index-advisor-improve-query-performance-and-productivity\/\">index advisor no recomienda<\/a> el \u00edndice primario cuando esa puede ser la \u00fanica opci\u00f3n?<\/li>\n<\/ol>\n<p>Sigue leyendo...<\/p>\n<p>Couchbase es una base de datos distribuida. Soporta un modelo de datos flexible usando JSON. Cada documento en un bucket tendr\u00e1 una clave de documento \u00fanica generada por el usuario. Esta unicidad se aplica durante la inserci\u00f3n o actualizaci\u00f3n de los datos. He aqu\u00ed un documento de ejemplo.<\/p>\n<pre class=\"theme:eclipse font-size:13 wrap:true whitespace-before:2 whitespace-after:1 lang:mysql decode:true\">select meta().id, viaje\r\nfrom `viaje-muestra` viaje\r\nwhere type = 'compa\u00f1\u00eda a\u00e9rea' limit 1;\r\n[\r\n  {\r\n      \"id\": \"aerol\u00ednea_10\",\r\n      \"travel\": {\r\n          \"indicativo\": \"MILE-AIR\",\r\n          \"country\": \"Estados Unidos\",\r\n          \"iata\": \"Q5\",\r\n          \"icao\": \"MLA\",\r\n          \"id\": 10,\r\n          \"name\": \"40-Mile Air\",\r\n          \"type\": \"aerol\u00ednea\"\r\n          }\r\n      }\r\n  ]<\/pre>\n<pre class=\"theme:eclipse font-size:14 whitespace-before:2 lang:mysql decode:true\">INSERT INTO customer (key, value) VALUES(\"cx:123\", {\"name\": \"joe\", \"zip\": 94040, \"state\":ca});\r\n\r\nSELECT META().id FROM cliente;\r\n\r\ncx:123\r\n<\/pre>\n<p>Cada bucket de Couchbase puede almacenar datos de varios tipos: cliente, pedido, cat\u00e1logo, etc. Al cargar el conjunto de datos \"travel-sample\", se cargan cinco tipos distintos de documentos: aerol\u00ednea, aeropuerto, hotel, ruta, puntos de referencia.<\/p>\n<p>Pero, por defecto, Couchbase no tiene el equivalente de \"escaneo de tabla completa\" para escanear todos los documentos de principio a fin.  El escaneo del \u00edndice primario te proporciona el equivalente al \"escaneo de tabla completa\".<\/p>\n<p>CREATE PRIMARY INDEX ix_customer_primary ON customer;<\/p>\n<p>\u00bfQu\u00e9 es el \u00edndice primario?<\/p>\n<ul>\n<li style=\"list-style-type: none\">\n<ul>\n<li>una lista ordenada de todas las claves de documentos de cada tipo de documento dentro del bucket cliente.<\/li>\n<li>se mantiene de forma as\u00edncrona, al igual que otros \u00edndices secundarios<\/li>\n<li>guarda s\u00f3lo la clave del documento y nada m\u00e1s<\/li>\n<li>admite todas las consistencias de escaneado:\n<ul>\n<li>Sin l\u00edmites<\/li>\n<li>AT_PLUS<\/li>\n<li>SOLICITUD_PLUS<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>El \u00edndice primario permite al motor de consulta acceder a todos los documentos y realizar sobre ellos las operaciones de filtrado, uni\u00f3n, agregaci\u00f3n, etc.<\/p>\n<p>EXPLAIN SELECT * from cliente WHERE c\u00f3digo postal = 94040 nombre = \"joe\" y tipo = \"cx\";<\/p>\n<p>Esto es lento. Muy lento. Obtenci\u00f3n innecesaria de documentos; filtrado innecesario. Desperdicio de memoria y CPU. Los escaneos primarios recuperar\u00e1n TODOS los documentos de todos los tipos en el bucket, independientemente de si su consulta finalmente los devuelve al usuario o no.  Aunque he dicho que el escaneo primario es como un escaneo de tabla, es mucho m\u00e1s lento que el escaneo de tabla ya que tiene que escanear todos los documentos de todos los tipos.<\/p>\n<p><span style=\"color: #ff0000\"><strong>No debe utilizar \u00edndices primarios.  No los utilice.  Especialmente en producci\u00f3n.<\/strong><\/span><\/p>\n<p><strong>\u00a0<\/strong>Entonces, \u00bfpara qu\u00e9 tenemos \u00edndices primarios, para empezar?<\/p>\n<ol>\n<li>Cuando est\u00e9 empezando a jugar con nuevos datos de muestra, puede ejecutar la mayor\u00eda de las consultas sin preocuparse de crear \u00edndices espec\u00edficos. En este punto, tu principal preocupaci\u00f3n es comprender los datos en lugar de ajustar el rendimiento.<\/li>\n<li>Cuando conozca el rango de claves primarias que desea escanear.\n<ol>\n<li><span class=\"theme:eclipse lang:mysql decode:true crayon-inline\">WHERE META().id between \u201ccx:123\u201d and \u201ccx:458\u201d<\/span><\/li>\n<\/ol>\n<\/li>\n<li>Cuando conozca el <strong>siguiendo <\/strong>META().id como el siguiente\n<ol>\n<li><span class=\"theme:eclipse lang:mysql decode:true crayon-inline\">WHERE META().id LIKE \u201ccx:1%\u201d<\/span><\/li>\n<li>NO utilice: COMO \"%:123\". Esto resultar\u00e1 en un escaneo completo<\/li>\n<\/ol>\n<\/li>\n<li>Si conoce el META().id completo o la lista de META().id, puede utilizar USE KEYS para obtener directamente el documento sin consultar el \u00edndice primario.\n<ol>\n<li><span class=\"theme:eclipse lang:mysql decode:true crayon-inline\">FROM customer USE KEYS [\u201ccx:123\u201d]<\/span><\/li>\n<li><span class=\"theme:eclipse lang:mysql decode:true crayon-inline\">FROM customer USE KEYS [\u201ccx:123\u201d, \u201ccx:359\u201d, \u201ccx:948\u201d]<\/span><\/li>\n<li><span class=\"theme:eclipse lang:mysql decode:true crayon-inline\">FROM customer USE KEYS (SELECT raw docid FROM mylist WHERE zip = 94501)<\/span><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<h3><b>\u00cdndice primario<\/b><\/h3>\n<p><span style=\"font-weight: 400\">crear el \u00edndice primario sobre 'muestra-viaje';<\/span><\/p>\n<p><span style=\"font-weight: 400\">El \u00edndice primario es simplemente el \u00edndice de la clave de documento de todo el bucket. La capa de datos de Couchbase impone la restricci\u00f3n de unicidad en la clave del documento. El \u00edndice primario, como cualquier otro \u00edndice en Couchbase, se mantiene de forma as\u00edncrona.  El \u00edndice primario se mantiene de forma as\u00edncrona. <\/span><a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/current\/architecture\/querying-data-with-n1ql.html\"><span style=\"font-weight: 400\">nivel de coherencia<\/span><\/a><span style=\"font-weight: 400\"> para su consulta.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Estos son los metadatos de este \u00edndice:<\/span><\/p>\n<pre class=\"font-size:17 line-height:20 whitespace-before:01 whitespace-after:1 lang:default decode:true\">select * from system:indexes where name = '#primary';\r\n\"indexes\": {\r\n  \"datastore_id\": \"https:\/\/127.0.0.1:8091\",\r\n  \"id\": \"f6e3c75d6f396e7d\",\r\n  \"index_key\": [],\r\n  \"is_primary\": true,\r\n  \"keyspace_id\": \"muestra-viaje\",\r\n  \"name\": \"#primary\",\r\n  \"namespace_id\": \"default\",\r\n  \"state\": \"online\",\r\n  \"using\": \"gsi\"\r\n  }\r\n<\/pre>\n<p><span style=\"font-weight: 400\">Los metadatos proporcionan informaci\u00f3n adicional sobre el \u00edndice: D\u00f3nde reside el \u00edndice (datastore_id), su estado (state) y el m\u00e9todo de indexaci\u00f3n (using).<\/span><br \/>\n<span style=\"font-weight: 400\">El \u00edndice primario se utiliza para escaneos de bucket completos (escaneos primarios) cuando la consulta no tiene ning\u00fan filtro (predicados) o no se puede utilizar ning\u00fan otro \u00edndice o ruta de acceso.   En Couchbase, almacenas m\u00faltiples keyspaces (documentos de diferente tipo, clientes, pedidos, inventario, etc) en un \u00fanico bucket.   Por lo tanto, cuando se hace el escaneo primario, la consulta utilizar\u00e1 el \u00edndice para obtener las claves de los documentos y obtener todos los documentos en el cubo y luego aplicar el filtro.    Esto es MUY CARO.<\/span><\/p>\n<p><span style=\"font-weight: 400\">El dise\u00f1o de la clave de documento es algo as\u00ed como el dise\u00f1o de la clave primaria con m\u00faltiples partes.<\/span><\/p>\n<p><span class=\"font-size:17 line-height:20 lang:mysql decode:true crayon-inline\">Apellido:nombre:ID cliente <\/span><\/p>\n<p><span class=\"font-size:17 line-height:20 lang:mysql decode:true crayon-inline\">Example: smith:john:X1A1849 <\/span><\/p>\n<p><span style=\"font-weight: 400\">En Couchbase, es una buena pr\u00e1ctica prefijar la clave con el tipo de documento.  Dado que se trata de un documento de cliente, vamos a prefijar con CX.  Ahora, la clave se convierte en:<\/span><\/p>\n<pre class=\"font-size:17 line-height:20 lang:mysql decode:true\">Ejemplo: CX:smith:juan:X1A1849\r\n<\/pre>\n<p><span style=\"font-weight: 400\">As\u00ed que, en el mismo cubo, habr\u00e1 otros tipos de documentos.<\/span><\/p>\n<pre class=\"font-size:17 line-height:20 lang:mysql decode:true\">Tipo de ORDEN:  OD:US:CA:294829\r\n<\/pre>\n<pre class=\"font-size:17 line-height:20 lang:mysql decode:true\">Tipo de art\u00edculo:   IT:KD93823\r\n<\/pre>\n<p><span style=\"font-weight: 400\">Estas son simplemente las mejores pr\u00e1cticas. No hay ninguna restricci\u00f3n en el formato o la estructura de la clave del documento en Couchbase, excepto que tienen que ser \u00fanicos dentro de un cubo.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Ahora, si tienes documentos con varias claves y tienes un \u00edndice primario, puedes utilizar las siguientes consultas para hacerlo de forma eficiente.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Ejemplo 1:  B\u00fasqueda de una clave de documento espec\u00edfica.<\/span><\/p>\n<pre class=\"font-size:17 line-height:20 whitespace-before:01 whitespace-after:01 lang:mysql decode:true\">SELECT * FROM ventas WHERE META().id = \"CX:smith:john:X1A1849\";\r\n\r\n      {\r\n        \"#operator\": \"IndexScan2\",\r\n        \"index\": \"#primary\",\r\n        \"index_id\": \"4c92ab0bcca9690a\",\r\n        \"keyspace\": \"sales\",\r\n        \"namespace\": \"default\",\r\n        \"spans\": [\r\n          {\r\n            \"exact\": true\r\n            \"range\": [\r\n              {\r\n                \"alto\": \"\\\"CX:smith:john:X1A1849\\\"\",\r\n                \"inclusi\u00f3n\": 3,\r\n                \"low\": \"\\\"CX:smith:john:X1A1849\\\"\"\r\n              }\r\n            ]\r\n          }\r\n        ],\r\n<\/pre>\n<p><span style=\"font-weight: 400\">Si conoce la clave completa del documento, puede utilizar la siguiente sentencia y evitar por completo el acceso al \u00edndice.<\/span><\/p>\n<p><span class=\"theme:dark-terminal lang:default decode:true crayon-inline\">SELECT * FROM sales USE KEYS [\u201cCX:smith:john:X1A1849\u201d] <\/span><\/p>\n<p><span style=\"font-weight: 400\">Puede obtener m\u00e1s de un documento en una declaraci\u00f3n.<\/span><\/p>\n<pre class=\"font-size:17 line-height:20 lang:mysql decode:true\">SELECT * FROM ventas USE KEYS [\"CX:smith:john:X1A1849\", \"CX:smithjr:john:X2A1492\"].\r\n<\/pre>\n<p><b>Ejemplo 2:<\/b><span style=\"font-weight: 400\"> \u00a0Busque un patr\u00f3n.  Consigue TODOS los documentos del cliente.<\/span><\/p>\n<pre class=\"font-size:17 line-height:20 whitespace-before:01 whitespace-after:01 lang:mysql decode:true\">SELECT * FROM ventas WHERE META().id LIKE \"CX:%\";\r\n      {\r\n        \"#operador\": \"IndexScan2\",\r\n        \"index\": \"#primary\",\r\n        \"index_id\": \"4c92ab0bcca9690a\",\r\n        \"keyspace\": \"sales\",\r\n        \"namespace\": \"default\",\r\n        \"spans\": [\r\n          {\r\n            \"exact\": true\r\n            \"range\": [\r\n              {\r\n                \"alto\": \"\\\"CX;\\\"\",\r\n                \"inclusi\u00f3n\": 1,\r\n                \"bajo\": \"\\\"CX:\\\"\"\r\n              }\r\n            ]\r\n          }\r\n        ],\r\n<\/pre>\n<p><b>Ejemplo 3:<\/b><span style=\"font-weight: 400\"> \u00a0Consigue a todos los clientes que se apelliden Smith.<\/span><\/p>\n<p><span style=\"font-weight: 400\">La siguiente consulta utiliza el \u00edndice primario de forma eficiente, obteniendo \u00fanicamente los clientes con un rango determinado.<\/span><span style=\"font-weight: 400\"> \u00a0<\/span><b>Nota:<\/b><span style=\"font-weight: 400\"> Este escaneo distingue entre may\u00fasculas y min\u00fasculas.  Para realizar una b\u00fasqueda sin distinguir may\u00fasculas de min\u00fasculas, debe crear un \u00edndice secundario con UPPER() o LOWER() de la clave del documento.<\/span><\/p>\n<pre class=\"font-size:17 line-height:20 whitespace-before:01 whitespace-after:01 lang:mysql decode:true\">SELECT * FROM ventas WHERE META().id LIKE \"CX:smith%\";\r\n\r\n      {\r\n        \"Operador1TP5\": \"IndexScan2\",\r\n        \"index\": \"#primary\",\r\n        \"index_id\": \"4c92ab0bcca9690a\",\r\n        \"keyspace\": \"sales\",\r\n        \"namespace\": \"default\",\r\n        \"spans\": [\r\n          {\r\n            \"exact\": true\r\n            \"range\": [\r\n              {\r\n                \"alto\": \"\\\"CX:smiti\\\"\",\r\n                \"inclusi\u00f3n\": 1,\r\n                \"low\": \"\\\"CX:smith\\\"\"\r\n              }\r\n            ]\r\n          }\r\n        ],\r\n<\/pre>\n<p><b>Ejemplo 4:<\/b><span style=\"font-weight: 400\"> \u00a0Es habitual que algunas aplicaciones utilicen la direcci\u00f3n de correo electr\u00f3nico como parte de la clave del documento, ya que son \u00fanicas. En ese caso, es necesario averiguar todos los clientes con gmail.com.  Si este es un requisito t\u00edpico, entonces, almacene el REVERSO de la direcci\u00f3n de correo electr\u00f3nico como la clave y simplemente haga el escaneo del patr\u00f3n de cadena l\u00edder.<\/span><\/p>\n<p><span class=\"font-size:17 line-height:20 lang:default decode:true crayon-inline\">Email:johnsmith@gmail.com; &amp;nbsp;&amp;nbsp;key: reverse(&#8220;johnsmith@gmail.com&#8221;) =&gt; moc.liamg@htimsnhoj\u00a0<\/span><\/p>\n<p><span class=\"font-size:17 line-height:20 lang:default decode:true crayon-inline\">Email: janesnow@yahoo.com &amp;nbsp;key: reverse(&#8220;janesnow@yahoo.com&#8221;) =&gt; moc.oohay@wonsenaj<\/span><\/p>\n<pre class=\"font-size:17 line-height:20 whitespace-before:1 whitespace-after:1 lang:mysql decode:true\">SELECT *\r\nFROM ventas\r\nWHERE meta().id LIKE (reverse(\"@yahoo.com\") || \"%\");\r\n\r\n        \"#operator\": \"IndexScan2\",\r\n        \"index\": \"#primary\",\r\n        \"index_id\": \"4c92ab0bcca9690a\",\r\n        \"keyspace\": \"sales\",\r\n        \"namespace\": \"default\",\r\n        \"spans\": [\r\n          {\r\n            \"range\": [\r\n              {\r\n                \"alto\": \"\\\"moc.oohayA\\\"\",\r\n                \"inclusi\u00f3n\": 1,\r\n                \"low\": \"\\\"moc.oohay@\\\"\"\r\n              }\r\n            ]\r\n          }\r\n        ],\r\n<\/pre>\n<h3><b>\u00cdndice primario con nombre<\/b><\/h3>\n<p><span style=\"font-weight: 400\">En Couchbase 5.0, puedes crear m\u00faltiples r\u00e9plicas de cualquier \u00edndice con un simple par\u00e1metro a CREATE INDEX.  A continuaci\u00f3n se crear\u00e1n 3 copias del \u00edndice y tiene que haber un m\u00ednimo de 3 nodos de \u00edndice en el cl\u00faster.<\/span><\/p>\n<pre class=\"font-size:17 line-height:20 lang:mysql decode:true\">CREAR \u00cdNDICE PRIMARIO EN `viaje-muestra` CON {\"num_replica\":2};\r\nCREATE PRIMARY INDEX `def_primary` ON `viaje-muestra` ;<\/pre>\n<p><span style=\"font-weight: 400\">Tambi\u00e9n puede asignar un nombre al \u00edndice primario. El resto de las caracter\u00edsticas del \u00edndice primario son las mismas, excepto el nombre del \u00edndice. Un buen efecto secundario de esto es que puedes tener m\u00faltiples \u00edndices primarios en versiones de Couchbase anteriores a la 5.0 usando diferentes nombres. Los \u00edndices duplicados ayudan a la alta disponibilidad as\u00ed como a la distribuci\u00f3n de la carga de consultas a trav\u00e9s de ellos.  Esto es cierto tanto para los \u00edndices primarios como para los secundarios.<\/span><\/p>\n<pre class=\"font-size:17 line-height:20 whitespace-before:1 whitespace-after:01 lang:mysql decode:true\">select meta().id as documentkey, `viaje-muestra` compa\u00f1\u00eda a\u00e9rea\r\nde `viajes-muestra\r\nwhere type = 'airline' limit 1;\r\n{\r\n  \"compa\u00f1\u00eda a\u00e9rea\": {\r\n    \"indicativo\": \"MILE-AIR\",\r\n    \"country\": \"Estados Unidos\",\r\n    \"iata\": \"Q5\",\r\n    \"icao\": \"MLA\",\r\n    \"id\": 10,\r\n    \"name\": \"40-Mile Air\",\r\n    \"type\": \"aerol\u00ednea\"\r\n  },\r\n  \"documentkey\": \"airline_10\"\r\n}\r\n<\/pre>\n<p>Finalmente, en Couchbase 6.5, hemos introducido el Index advisor.  Puede analizar una \u00fanica sentencia N1QL o carga de trabajo.  Lee los detalles en:<\/p>\n<ol>\n<li><a href=\"https:\/\/www.couchbase.com\/blog\/es\/n1ql-index-advisor-improve-query-performance-and-productivity\/\">Asesor de \u00cdndices N1QL: Mejore el rendimiento y la productividad de las consultas<\/a><\/li>\n<li><a href=\"https:\/\/www.couchbase.com\/blog\/es\/index-advisor-for-n1ql-query-statement\/\">Asesor de \u00edndices para la declaraci\u00f3n de consulta N1QL<\/a><\/li>\n<li><a href=\"https:\/\/www.couchbase.com\/blog\/es\/index-advisor-for-query-workload\/\">Asesor de \u00edndices para cargas de trabajo de consulta<\/a><\/li>\n<\/ol>\n<p>Este asesor de \u00edndices s\u00f3lo aconseja \u00edndices secundarios adecuados y nunca un \u00edndice primario.  Si has le\u00eddo el art\u00edculo hasta ahora, \u00a1ya sabes por qu\u00e9! <a href=\"https:\/\/www.couchbase.com\/blog\/es\/downloads\/?family=server&amp;product=couchbase-server-developer\">Descargar Couchbase 6.5<\/a> y \u00a1prueba todas las novedades!<\/p>","protected":false},"excerpt":{"rendered":"<p>A couple of frequently asked questions on N1QL for query service: When do we actually use a primary index? Why the index advisor does not recommend the primary index when that may the only choice? Read on&#8230; Couchbase is a [&hellip;]<\/p>","protected":false},"author":55,"featured_media":11848,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[9417,9381,1812],"tags":[1505,1506],"ppma_author":[8929],"class_list":["post-7277","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-performance","category-indexing","category-n1ql-query","tag-index","tag-tuning"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.7.1 (Yoast SEO v25.7) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>What is the Couchbase Primary Index? Learn Primary Uses<\/title>\n<meta name=\"description\" content=\"What is the Couchbase Primary Index? The primary index scan provides you with the \u201cfull table scan\u201d equivalent for all the documents from start to finish.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/es\/primary-uses-for-couchbase-primary-index\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Primary Uses for Couchbase Primary Index\" \/>\n<meta property=\"og:description\" content=\"What is the Couchbase Primary Index? The primary index scan provides you with the \u201cfull table scan\u201d equivalent for all the documents from start to finish.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/es\/primary-uses-for-couchbase-primary-index\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2019-08-23T00:42:26+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T03:19:35+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/Couchbase-primary-index-gsi-global-secondary-index.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"882\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Keshav Murthy\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@rkeshavmurthy\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Keshav Murthy\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/primary-uses-for-couchbase-primary-index\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/primary-uses-for-couchbase-primary-index\/\"},\"author\":{\"name\":\"Keshav Murthy\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c261644262bf98e146372fe647682636\"},\"headline\":\"Primary Uses for Couchbase Primary Index\",\"datePublished\":\"2019-08-23T00:42:26+00:00\",\"dateModified\":\"2025-06-14T03:19:35+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/primary-uses-for-couchbase-primary-index\/\"},\"wordCount\":1138,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/primary-uses-for-couchbase-primary-index\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/Couchbase-primary-index-gsi-global-secondary-index.png\",\"keywords\":[\"Index\",\"Tuning\"],\"articleSection\":[\"High Performance\",\"Indexing\",\"SQL++ \/ N1QL Query\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/primary-uses-for-couchbase-primary-index\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/primary-uses-for-couchbase-primary-index\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/primary-uses-for-couchbase-primary-index\/\",\"name\":\"What is the Couchbase Primary Index? Learn Primary Uses\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/primary-uses-for-couchbase-primary-index\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/primary-uses-for-couchbase-primary-index\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/Couchbase-primary-index-gsi-global-secondary-index.png\",\"datePublished\":\"2019-08-23T00:42:26+00:00\",\"dateModified\":\"2025-06-14T03:19:35+00:00\",\"description\":\"What is the Couchbase Primary Index? The primary index scan provides you with the \u201cfull table scan\u201d equivalent for all the documents from start to finish.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/primary-uses-for-couchbase-primary-index\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/primary-uses-for-couchbase-primary-index\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/primary-uses-for-couchbase-primary-index\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/Couchbase-primary-index-gsi-global-secondary-index.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/Couchbase-primary-index-gsi-global-secondary-index.png\",\"width\":1200,\"height\":882},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/primary-uses-for-couchbase-primary-index\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Primary Uses for Couchbase Primary Index\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c261644262bf98e146372fe647682636\",\"name\":\"Keshav Murthy\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/4e51d72fc07c662aa791316deafffac4\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/af74df754db27152971d0aed2f323ead5a1f9fe5afd0209af91e12e784451224?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/af74df754db27152971d0aed2f323ead5a1f9fe5afd0209af91e12e784451224?s=96&d=mm&r=g\",\"caption\":\"Keshav Murthy\"},\"description\":\"Keshav Murthy is a Vice President at Couchbase R&amp;D. Previously, he was at MapR, IBM, Informix, Sybase, with more than 20 years of experience in database design &amp; development. He lead the SQL and NoSQL R&amp;D team at IBM Informix. He has received two President's Club awards at Couchbase, two Outstanding Technical Achievement Awards at IBM. Keshav has a bachelor's degree in Computer Science and Engineering from the University of Mysore, India, holds eleven US patents and has four US patents pending.\",\"sameAs\":[\"https:\/\/blog.planetnosql.com\/\",\"https:\/\/x.com\/rkeshavmurthy\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/es\/author\/keshav-murthy\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"What is the Couchbase Primary Index? Learn Primary Uses","description":"What is the Couchbase Primary Index? The primary index scan provides you with the \u201cfull table scan\u201d equivalent for all the documents from start to finish.","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:\/\/www.couchbase.com\/blog\/es\/primary-uses-for-couchbase-primary-index\/","og_locale":"es_MX","og_type":"article","og_title":"Primary Uses for Couchbase Primary Index","og_description":"What is the Couchbase Primary Index? The primary index scan provides you with the \u201cfull table scan\u201d equivalent for all the documents from start to finish.","og_url":"https:\/\/www.couchbase.com\/blog\/es\/primary-uses-for-couchbase-primary-index\/","og_site_name":"The Couchbase Blog","article_published_time":"2019-08-23T00:42:26+00:00","article_modified_time":"2025-06-14T03:19:35+00:00","og_image":[{"width":1200,"height":882,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/Couchbase-primary-index-gsi-global-secondary-index.png","type":"image\/png"}],"author":"Keshav Murthy","twitter_card":"summary_large_image","twitter_creator":"@rkeshavmurthy","twitter_misc":{"Written by":"Keshav Murthy","Est. reading time":"7 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/primary-uses-for-couchbase-primary-index\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/primary-uses-for-couchbase-primary-index\/"},"author":{"name":"Keshav Murthy","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c261644262bf98e146372fe647682636"},"headline":"Primary Uses for Couchbase Primary Index","datePublished":"2019-08-23T00:42:26+00:00","dateModified":"2025-06-14T03:19:35+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/primary-uses-for-couchbase-primary-index\/"},"wordCount":1138,"commentCount":2,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/primary-uses-for-couchbase-primary-index\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/Couchbase-primary-index-gsi-global-secondary-index.png","keywords":["Index","Tuning"],"articleSection":["High Performance","Indexing","SQL++ \/ N1QL Query"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/primary-uses-for-couchbase-primary-index\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/primary-uses-for-couchbase-primary-index\/","url":"https:\/\/www.couchbase.com\/blog\/primary-uses-for-couchbase-primary-index\/","name":"What is the Couchbase Primary Index? Learn Primary Uses","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/primary-uses-for-couchbase-primary-index\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/primary-uses-for-couchbase-primary-index\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/Couchbase-primary-index-gsi-global-secondary-index.png","datePublished":"2019-08-23T00:42:26+00:00","dateModified":"2025-06-14T03:19:35+00:00","description":"What is the Couchbase Primary Index? The primary index scan provides you with the \u201cfull table scan\u201d equivalent for all the documents from start to finish.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/primary-uses-for-couchbase-primary-index\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/primary-uses-for-couchbase-primary-index\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/primary-uses-for-couchbase-primary-index\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/Couchbase-primary-index-gsi-global-secondary-index.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/Couchbase-primary-index-gsi-global-secondary-index.png","width":1200,"height":882},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/primary-uses-for-couchbase-primary-index\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Primary Uses for Couchbase Primary Index"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"El blog de Couchbase","description":"Couchbase, la base de datos NoSQL","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"El blog de Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c261644262bf98e146372fe647682636","name":"Keshav Murthy","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/4e51d72fc07c662aa791316deafffac4","url":"https:\/\/secure.gravatar.com\/avatar\/af74df754db27152971d0aed2f323ead5a1f9fe5afd0209af91e12e784451224?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/af74df754db27152971d0aed2f323ead5a1f9fe5afd0209af91e12e784451224?s=96&d=mm&r=g","caption":"Keshav Murthy"},"description":"Keshav Murthy es Vicepresidente de Couchbase R&amp;D. Anteriormente, estuvo en MapR, IBM, Informix, Sybase, con m\u00e1s de 20 a\u00f1os de experiencia en dise\u00f1o y desarrollo de bases de datos. Dirigi\u00f3 el equipo de I+D de SQL y NoSQL en IBM Informix. Ha recibido dos premios President's Club en Couchbase y dos premios Outstanding Technical Achievement en IBM. Keshav es licenciado en Inform\u00e1tica e Ingenier\u00eda por la Universidad de Mysore (India), es titular de once patentes estadounidenses y tiene cuatro pendientes.","sameAs":["https:\/\/blog.planetnosql.com\/","https:\/\/x.com\/rkeshavmurthy"],"url":"https:\/\/www.couchbase.com\/blog\/es\/author\/keshav-murthy\/"}]}},"authors":[{"term_id":8929,"user_id":55,"is_guest":0,"slug":"keshav-murthy","display_name":"Keshav Murthy","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/af74df754db27152971d0aed2f323ead5a1f9fe5afd0209af91e12e784451224?s=96&d=mm&r=g","first_name":"Keshav","last_name":"Murthy","user_url":"https:\/\/blog.planetnosql.com\/","author_category":"","description":"Keshav Murthy es Vicepresidente de Couchbase R&amp;D. Anteriormente, estuvo en MapR, IBM, Informix, Sybase, con m\u00e1s de 20 a\u00f1os de experiencia en dise\u00f1o y desarrollo de bases de datos. Dirigi\u00f3 el equipo de I+D de SQL y NoSQL en IBM Informix. Ha recibido dos premios President's Club en Couchbase y dos premios Outstanding Technical Achievement en IBM. Keshav es licenciado en Inform\u00e1tica e Ingenier\u00eda por la Universidad de Mysore (India), es titular de diez patentes estadounidenses y tiene tres pendientes."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/7277","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/users\/55"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=7277"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/7277\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media\/11848"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=7277"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=7277"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=7277"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=7277"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}